AcceptChanges 和 RejectChanges
更新: November 2007
驗證對 DataTable 中之資料所進行之變更的正確性之後,即可以使用 DataRow、DataTable 或 DataSet 的 AcceptChanges 方法接受變更,這樣會將 Current 資料列值設為 Original 值,並將 RowState 屬性設為 Unchanged。接受或拒絕變更會清除任何 RowError 資訊,並且會將 HasErrors 屬性設為 false。接受或拒絕變更也會影響資料來源中的資料更新。如需詳細資訊,請參閱 以 DataAdapter 更新資料來源 (ADO.NET)。
如果 DataTable 有外部索引鍵條件約束,則使用 AcceptChanges 和 RejectChanges 接受或拒絕的變更都會根據 ForeignKeyConstraint.AcceptRejectRule 傳播至 DataRow 的子資料列。如需詳細資訊,請參閱 DataTable 條件約束 (ADO.NET)。
下列範例會檢查發生錯誤的資料列、適當地解決錯誤,並且在無法解決錯誤時拒絕資料列。請注意,對於已解決的錯誤,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();