Dela via


AcceptChanges och RejectChanges

När du har verifierat noggrannheten för ändringar som gjorts i data i kan DataTabledu acceptera ändringarna med hjälp AcceptChanges av DataRowmetoden , DataTable, eller DataSet, som anger värdena för aktuell rad som originalvärden och anger egenskapen RowState till Oförändrad. Om du accepterar eller avvisar ändringar rensas all RowError-information och egenskapen HasErrors anges till false. Att acceptera eller avvisa ändringar kan också påverka uppdatering av data i datakällan. Mer information finns i Uppdatera datakällor med DataAdapters.

Om det finns begränsningar för sekundärnyckeln i DataTable sprids ändringar som accepteras eller avvisas med AcceptChanges och RejectChanges till underordnade rader i DataRow enligt ForeignKeyConstraint.AcceptRejectRule. Mer information finns i DataTable-begränsningar.

Följande exempel söker efter rader med fel, löser felen där det är tillämpligt och avvisar de rader där felet inte kan lösas. Observera att värdet RowError för lösta fel återställs till en tom sträng, vilket gör att egenskapen HasErrors anges till false. När alla rader med fel har lösts eller avvisats anropas AcceptChanges för att acceptera alla ändringar för hela 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();  

Se även