"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.

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.

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 bei behobenen Fehler der RowError-Wert auf eine leere Zeichenfolge zurückgesetzt wird, was dazu führt, dass die HasErrors-Eigenschaft auf 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