Compartir a través de


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)