AcceptChanges 和 RejectChanges
驗證對 DataTable 中之資料所進行之變更的正確性之後,即可以使用 DataRow、DataTable 或 DataSet 的 AcceptChanges 方法接受變更,這樣會將 Current 資料列值設為 Original 值,並將 RowState 屬性設為 Unchanged。 接受或拒絕變更會清除任何 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();
另請參閱
- DataRow
- DataSet
- DataTable
- 在 DataTable 中操作資料
- ADO.NET 概觀 \(部分機器翻譯\)