Partager via


AcceptChanges et RejectChanges

Mise à jour : November 2007

Après avoir vérifié l'exactitude des modifications apportées aux données d'un objet DataTable, vous pouvez les accepter à l'aide de la méthode AcceptChanges des objets DataRow, DataTable ou DataSet, qui définira les valeurs de ligne Current comme valeurs Original et attribuera la valeur Unchanged à la propriété RowState. L'acceptation ou le rejet des modifications supprime toutes les informations RowError et attribue la valeur false à la propriété HasErrors. L'acceptation ou le rejet des modifications peut également affecter la mise à jour des données dans la source de données. Pour plus d'informations, voir Mise à jour de sources de données à l'aide de DataAdapters (ADO.NET).

S'il existe des contraintes de clé étrangère dans le DataTable, les modifications acceptées ou rejetées à l'aide de AcceptChanges et RejectChanges sont propagées aux lignes enfants du DataRow en fonction de ForeignKeyConstraint.AcceptRejectRule. Pour plus d'informations, voir Contraintes DataTable (ADO.NET).

L'exemple suivant vérifie les lignes ayant des erreurs, résout, le cas échéant, les erreurs et rejette les lignes dans lesquelles les erreurs ne peuvent pas être résolues. Notez que, pour les erreurs résolues, la valeur RowError est réinitialisée sur une chaîne vide, provoquant l'attribution de la valeur false à la propriété HasErrors. Lorsque toutes les lignes ayant des erreurs ont été résolues ou rejetées, AcceptChanges est appelée pour accepter toutes les modifications pour l'ensemble du 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();

Voir aussi

Référence

DataRow

DataSet

DataTable

Autres ressources

Manipulation de données dans un DataTable