AcceptChanges 和 RejectChanges

驗證對 DataTable 中之資料所進行之變更的正確性之後,即可以使用 DataRowDataTableDataSetAcceptChanges 方法接受變更,這樣會將 Current 資料列值設為 Original 值,並將 RowState 屬性設為 Unchanged。 接受或拒絕變更會清除任何 RowError 資訊,並且會將 HasErrors 屬性設為 false。 接受或拒絕變更也會影響資料來源中的資料更新。 如需詳細資訊,請參閱使用 DataAdapters 更新資料來源

如果 DataTable 有外部索引鍵條件約束,則使用 AcceptChangesRejectChanges 接受或拒絕的變更都會根據 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();  

另請參閱