Markieren Sie das Kontrollkästchen Englisch, um die englische Version dieses Artikels anzuzeigen. Sie können den englischen Text auch in einem Popup-Fenster einblenden, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch
Diese Dokumentation wurde archiviert und wird nicht länger gepflegt.

'AcceptChanges' und 'RejectChanges'

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 das Update 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)
{

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

Anzeigen: