AcceptChanges et RejectChanges
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éfinit les valeurs de ligne Current comme valeurs Original et attribue 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, consultez Mise à jour des sources de données avec DataAdapters.
En présence de contraintes de clé étrangère sur DataTable, les modifications acceptées ou rejetées à l’aide d’AcceptChanges et de RejectChanges sont propagées aux lignes enfants de DataRow, conformément à la règle ForeignKeyConstraint.AcceptRejectRule. Pour plus d’informations, consultez Contraintes de DataTable.
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. Une fois toutes les lignes comportant des erreurs résolues ou rejetées, AcceptChanges est appelé afin d’accepter toutes les modifications pour l’ensemble de 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();