验证对数据DataTable所做的更改的准确性后,可以使用 的方法AcceptChanges接受更改DataRow;DataTable或者DataSet,将当前行值设置为原始值,并将 RowState 属性设置为“未更改”。 接受或拒绝更改会清除任何 RowError 信息,并将 HasErrors 属性设置为 false。 接受或拒绝更改还会影响更新数据源中的数据。 有关详细信息,请参阅 使用 DataAdapters 更新数据源。
如果 DataTable 上存在外键约束,则根据 ForeignKeyConstraint.AcceptRejectRule,使用 AcceptChanges 或 RejectChanges 所接受或拒绝的更改会传播到 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();