AcceptChanges e RejectChanges
Depois de verificar a precisão das alterações feitas nos dados em um DataTable, você pode aceitar as alterações usando o método AcceptChanges do DataRow, DataTable ou DataSet, que definirá os valores de linha atuais como os valores originais e definirá a propriedade RowState como inalterada. Aceitar ou rejeitar alterações limpa qualquer informação de RowError e define a propriedade HasErrors como false. Aceitar ou rejeitar alterações também pode afetar a atualização de dados na fonte de dados. Para obter mais informações, consulte Atualizando fontes de dados com DataAdapters.
Se houver restrições de chave estrangeira na DataTable, as alterações aceitas ou rejeitadas usando AcceptChanges e RejectChanges serão propagadas para linhas filho do DataRow de acordo com ForeignKeyConstraint.AcceptRejectRule. Para obter mais informações, consulte Restrições de DataTable.
O exemplo a seguir verifica linhas com erros, resolve os erros quando aplicável e rejeita as linhas em que o erro não pode ser resolvido. Observe que, para erros resolvidos, o valor RowError é redefinido para uma cadeia de caracteres vazia, fazendo com que a propriedade HasErrors seja definida como false. Quando todas as linhas com erros tiverem sido resolvidas ou rejeitadas, AcceptChanges será chamado para aceitar todas as alterações para toda a 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();