AcceptChanges y RejectChanges

Actualización: November 2007

Después de comprobar la exactitud de los cambios realizados en una DataTable, se pueden aceptar con el método AcceptChanges de DataRow, DataTable o DataSet, que configurará los valores de fila Current de modo que sean los valores Original y establecerá la propiedad RowState en Unchanged. Si se aceptan o se rechazan los cambios, se elimina la información de RowError y se establece la propiedad HasErrors en false. Aceptar o rechazar cambios también puede afectar a la actualización de datos en el origen de datos. Para obtener más información, vea Actualizar orígenes de datos con DataAdapters (ADO.NET).

Si hay restricciones de clave externa en la DataTable, los cambios que se acepten o se rechacen con AcceptChanges y RejectChanges se propagan a las filas secundarias de la DataRow de acuerdo con la ForeignKeyConstraint.AcceptRejectRule. Para obtener más información, vea Restricciones de DataTable (ADO.NET).

En el ejemplo siguiente se comprueba si hay filas con errores, se resuelven los errores que haya y se rechazan las filas en las que no se puede resolver el error. Tenga en cuenta que, en los errores que se resuelven, el valor RowError se restablece en una cadena vacía, con lo que la propiedad HasErrors se establece en false. Una vez que se han resuelto o rechazado todas las filas con errores, se llama a AcceptChanges para aceptar todos los cambios de toda la DataTable.

If workTable.HasErrors Then
  Dim errRow As DataRow

  For Each errRow in workTable.GetErrors()

    If errRow.RowError = "Total cannot exceed 1000." Then
      errRow("Total") = 1000
      errRow.RowError = ""    ' Clear the error.
    Else
      errRow.RejectChanges()
    End If
  Next
End If

workTable.AcceptChanges()
if (workTable.HasErrors)
{

  foreach (DataRow errRow in workTable.GetErrors())
  {
    if (errRow.RowError == "Total cannot exceed 1000.")
    {
      errRow["Total"] = 1000;
      errRow.RowError = "";    // Clear the error.
    }
    else
      errRow.RejectChanges();
  }
}

workTable.AcceptChanges();

Vea también

Referencia

DataRow

DataSet

DataTable

Otros recursos

Manipular datos en DataTable