Acceptation ou rejet des modifications de lignes

Après avoir vérifié l'exactitude des modifications apportées aux données d'un DataTable, vous pouvez les accepter à l'aide de la méthode AcceptChanges du 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, consultez Mise à jour de la base de données avec un DataAdapter et le DataSet.

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, consultez Ajout de contraintes à une table.

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()
[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();

Voir aussi

Manipulation de données dans un DataTable | DataRow, classe | DataSet, classe | DataTable, classe