验证对数据DataTable所做更改的准确性后,可以通过AcceptChanges方法或DataRow、DataTable、DataSet来接受更改,这将把行值Current设置为Original值,并将RowState属性设置为未更改。 接受或拒绝更改会清除任何 RowError 信息,并将 HasErrors 属性设置为 false。 接受或拒绝更改还会影响更新数据源中的数据。 有关详细信息,请参阅 使用 DataAdapters 更新数据源。
如果DataTable上存在外键约束,使用AcceptChanges和RejectChanges接受或拒绝的更改会根据ForeignKeyConstraint.AcceptRejectRule传播到子行DataRow。 有关详细信息,请参阅 DataTable 约束。
以下示例检查是否存在错误的行,解决适用的错误,并拒绝无法解决错误的行。 请注意,对于已解决的错误, RowError 该值将重置为空字符串,导致 HasErrors 属性设置为 false。 解决或拒绝所有出现错误的行时, AcceptChanges 将调用它以接受整个 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();