'AcceptChanges' und 'RejectChanges'

Aktualisiert: November 2007

Nach Sie sichergestellt haben, dass die Änderungen an den Daten in einer DataTable korrekt sind, können Sie die Änderungen mithilfe der AcceptChanges-Methode der DataRow, der DataTable oder des DataSet übernehmen. Dadurch werden die Current-Zeilenwerte auf Original-Werte festgelegt, und die RowState-Eigenschaft wird auf Unchanged festgelegt. Durch Übernehmen oder Ablehnen der Änderungen werden jegliche RowError-Informationen gelöscht, und die HasErrors Eigenschaft wird auf false festgelegt. Das Übernehmen oder Zurückweisen von Änderungen kann sich auch auf die Aktualisierung von Daten in der Datenquelle auswirken. Weitere Informationen finden Sie unter Aktualisieren von Datenquellen mit 'DataAdapters' (ADO.NET).

Wenn für die DataTable Fremdschlüsseleinschränkungen vorhanden sind, werden Änderungen, die mit AcceptChanges und RejectChanges übernommen oder zurückgewiesen wurden, gemäß der ForeignKeyConstraint.AcceptRejectRule an die untergeordneten Zeilen der DataRow weitergegeben. Weitere Informationen finden Sie unter 'DataTable'-Einschränkungen (ADO.NET).

Im folgenden Beispiel werden Zeilen mit Fehlern gesucht, die Fehler ggf. behoben und die Zeilen, in denen die Fehler nicht behoben werden können, zurückgewiesen. Beachten Sie, dass der RowError-Wert für behobene Fehler auf eine leere Zeichenfolge zurückgesetzt wird, was dazu führt, dass für die HasErrors-Eigenschaft false festgelegt wird. Wenn alle Zeilen mit Fehlern aufgelöst oder zurückgewiesen wurden, wird AcceptChanges aufgerufen, um alle Änderungen für die gesamte DataTable zu übernehmen.

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

Siehe auch

Referenz

DataRow

DataSet

DataTable

Weitere Ressourcen

Bearbeiten von Daten in einer DataTable