服務熱線
153 8323 9821
DataRow 和 DataTable 類都具有 AcceptChanges 方法。在 DataTable 級別調用 AcceptChanges,會為要調用的每個 DataRow 導致 AcceptChanges 方法。同樣,對 DataSet 調用 AcceptChanges 會導致對 DataSet 中的每個表調用 AcceptChanges。照這樣,您可在多個級別上調用該方法。調用 DataSet 的 AcceptChanges 將使您只需調用一次,即可對所有次級對象(例如表和行)調用該方法。
當對 DataSet 調用 AcceptChanges 時,任何仍處于編輯模式的 DataRow 對象都將成功結束其編輯。每個 DataRow 的 RowState 屬性也會更改;Added 和 Modified 行變?yōu)?Unchanged,而 Deleted 行則被移除。
如果 DataSet 包含 ForeignKeyConstraint 對象,則調用 AcceptChanges 方法還將導致實施 AcceptRejectRule。
下面的示例將 DataRow 添加到 DataSet 的 DataTable 中。然后針對 DataSet 調用 AcceptChanges 方法,該數(shù)據(jù)集將級聯(lián)到它包含的所有 DataTable 對象。
private void AcceptChanges()
{
DataSet myDataSet;
myDataSet = new DataSet();
// Not shown: methods to fill the DataSet with data.
DataTable t;
t = myDataSet.Tables["Suppliers"];
// Add a DataRow to a table.
DataRow myRow;
myRow = t.NewRow();
myRow["CompanyID"] = "NWTRADECO";
myRow["CompanyName"] = "NortWest Trade Company";
// Add the row.
t.Rows.Add( myRow );
// Calling AcceptChanges on the DataSet causes AcceptChanges to be
// called on all subordinate objects.
myDataSet.AcceptChanges();
}
注意:datatable的每一列都有個狀態(tài)。忘記有哪些了。如果是改變過的,在update的時候就會跟據(jù)修改過的那些資料去修改數(shù)據(jù)庫,沒有修改的不動。如果調用了acceptchanges,這些改變后的狀態(tài)都會被置為未改變。因此update的時候,就不會修改數(shù)據(jù)庫。
下一篇:詳解DataTable用法