Delen via


AcceptChanges en RejectChanges

Nadat u de nauwkeurigheid van wijzigingen in gegevens in een DataTablehebt gecontroleerd, kunt u de wijzigingen accepteren met behulp van DataRowde AcceptChanges methode , DataTableof DataSet, waarmee de huidige rijwaarden worden ingesteld op de oorspronkelijke waarden en de eigenschap RowState wordt ingesteld op Ongewijzigd. Als u wijzigingen accepteert of weigert, worden alle RowError-gegevens gewist en wordt de eigenschap HasErrors ingesteld op false. Het accepteren of negeren van wijzigingen kan ook van invloed zijn op het bijwerken van gegevens in de gegevensbron. Zie Gegevensbronnen bijwerken met DataAdapters voor meer informatie.

Als er beperkingen voor refererende sleutels in de gegevenstabel bestaan, worden wijzigingen die zijn geaccepteerd of geweigerd met Behulp van AcceptChanges en RejectChanges , doorgegeven aan onderliggende rijen van de DataRow volgens de ForeignKeyConstraint.AcceptRejectRule. Zie DataTable-beperkingen voor meer informatie.

In het volgende voorbeeld wordt gecontroleerd op rijen met fouten, worden de fouten indien van toepassing opgelost en worden de rijen geweigerd waar de fout niet kan worden opgelost. Houd er rekening mee dat voor opgeloste fouten de RowError-waarde opnieuw wordt ingesteld op een lege tekenreeks, waardoor de eigenschap HasErrors wordt ingesteld op false. Wanneer alle rijen met fouten zijn opgelost of geweigerd, wordt AcceptChanges aangeroepen om alle wijzigingen voor de gehele gegevenstabel te accepteren.

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

Zie ook