Metody AcceptChanges a RejectChanges

Po ověření přesnosti změn provedených v datech v objektu DataTable, můžete přijmout změny pomocí AcceptChanges metody DataRow, DataTablenebo DataSet, který nastaví hodnoty aktuálního řádku na Původní hodnoty a nastaví RowState vlastnost Beze změny. Přijetí nebo odmítnutí změn vymaže všechny informace o typu RowError a nastaví vlastnost HasErrors na false. Přijetí nebo odmítnutí změn může mít vliv také na aktualizaci dat ve zdroji dat. Další informace naleznete v tématu Aktualizace zdrojů dat pomocí objektů DataAdapter.

Pokud v tabulce DataTable existují omezení cizího klíče, změny přijaté nebo odmítnuté pomocí AcceptChanges a RejectChanges se rozšíří do podřízených řádků DataRow podle ForeignKeyConstraint.AcceptRejectRule. Další informace naleznete v tématu Omezení tabulky DataTable.

Následující příklad kontroluje řádky s chybami, vyřeší chyby tam, kde je to možné, a odmítne řádky, ve kterých nelze chybu vyřešit. Všimněte si, že pro vyřešené chyby je hodnota RowError resetována na prázdný řetězec, což způsobuje, že HasErrors vlastnost je nastavena na false. Pokud byly všechny řádky s chybami vyřešeny nebo odmítnuty, je volána funkce AcceptChanges , aby přijímala všechny změny pro celou tabulku 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();  

Viz také