Freigeben über


Übernehmen oder Ablehnen von Änderungen an Zeilen

Nachdem Sie sichergestellt haben, dass die Änderungen an den Daten in einer DataTable korrekt sind, können Sie mit Hilfe der AcceptChanges-Methode eines der Objekte DataRow, DataTable oder DataSet die Änderungen übernehmen. Dadurch werden die Current-Zeilenwerte auf die Original-Werte gesetzt und die RowState-Eigenschaft auf Unchanged. Durch Übernehmen oder Ablehnen der Änderungen werden jegliche RowError-Informationen gelöscht und die HasErrors-Eigenschaft auf false gesetzt. Das Übernehmen oder Zurückweisen von Änderungen kann sich auch auf die Aktualisierung von Daten in der Datenquelle auswirken. Weitere Informationen hierzu finden Sie unter Aktualisieren der Datenbank mit einem DataAdapter und dem DataSet.

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 hierzu finden Sie unter Hinzufügen von Einschränkungen zu einer Tabelle.

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 die HasErrors-Eigenschaft auf false gesetzt wird. Wenn alle Zeilen mit Fehlern repariert oder zurückgewiesen worden sind, wird AcceptChanges aufgerufen, damit alle Änderungen für die gesamte DataTable übernommen werden.

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

Siehe auch

Bearbeiten von Daten in einer Datentabelle | DataRow-Klasse | DataSet-Klasse | DataTable-Klasse