Metody AcceptChanges i RejectChanges

Po zweryfikowaniu dokładności zmian wprowadzonych w danych w elemencie DataTablemożna zaakceptować zmiany przy użyciu AcceptChanges metody DataRow, DataTablelub DataSet, która ustawi wartości bieżącego wiersza na wartości Oryginalne i ustawi właściwość RowState na bez zmian. Akceptowanie lub odrzucanie zmian powoduje wyczyszczenie wszystkich informacji o błędzie RowError i ustawienie właściwości HasErrors na false. Akceptowanie lub odrzucanie zmian może również mieć wpływ na aktualizowanie danych w źródle danych. Aby uzyskać więcej informacji, zobacz Aktualizowanie źródeł danych za pomocą elementów DataAdapters.

Jeśli istnieją ograniczenia klucza obcego w tabeli DataTable, zmiany zaakceptowane lub odrzucone przy użyciu metod AcceptChanges i RejectChanges są propagowane do wierszy podrzędnych elementu DataRow zgodnie z ForeignKeyConstraint.AcceptRejectRule. Aby uzyskać więcej informacji, zobacz Ograniczenia tabeli danych.

Poniższy przykład sprawdza wiersze z błędami, usuwa błędy tam, gdzie ma to zastosowanie, i odrzuca wiersze, w których nie można rozpoznać błędu. Należy pamiętać, że w przypadku usuniętych błędów wartość RowError jest resetowana do pustego ciągu, co powoduje ustawienie właściwości HasErrors na wartość false. Gdy wszystkie wiersze z błędami zostały rozwiązane lub odrzucone, funkcja AcceptChanges jest wywoływana, aby zaakceptować wszystkie zmiany dla całej tabeli 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()  
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();  

Zobacz też