Aceptar o rechazar cambios en filas
Después de comprobar la exactitud de los cambios realizados en una DataTable, dichos cambios 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 la base de datos con un DataAdapter y el DataSet.
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 Agregar restricciones a una tabla.
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()
[C#]
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
Manipular datos en DataTable | DataRow (Clase) | DataSet (Clase) | DataTable (Clase)