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