【ADO.NET】DataTable對象的狀態

來源:互聯網
上載者:User

DataRowState 枚舉:

Added 該行已添加到 DataRowCollection 中,AcceptChanges尚未調用。 
Deleted 該行已通過 DataRow 的 Delete 方法被刪除。
Detached 該行已被建立,但不屬於任何 DataRowCollection。DataRow 在以下情況下立即處於此狀態:建立之後添加到集合中之前;或從集合中移除之後。
Modified 該行已被修改,AcceptChanges 尚未調用。
Unchanged 該行自上次調用 AcceptChanges 以來尚未更改。

 

DataTable.AcceptChanges方法:提交自上次調用AcceptChanges以來對該表進行的所有更改。

調用AcceptChanges時,任何仍處於編輯模式的DataRow對象將成功結束其編輯。DataRowState也發生更改:所有Added和Modified行成為Unchanged;Deleted行被移除。

在您嘗試使用DbDataAdapter.Update方法更新DataSet之後,通常會對DataTable調用AcceptChanges方法。

 

DataTable.RejectChanges方法:復原自該表載入以來或上次調用AcceptChanges以來對該表進行的所有更改。

調用RejectChanges時,任何仍處於編輯模式的DataRow對象將取消其編輯。新行被移除。DataRowState設定為Modified或Deleted的行返回到其初始狀態。

會出現對DataTable進行多次更改,但是通過調用RejectChanges方法拒絕這些更改的現象。

 

DataRow.BeginEdit方法:對DataRow對象開始編輯操作。

使用BeginEdit方法將DataRow置於編輯模式。在此模式中,事件被臨時掛起,以便允許使用者在不觸發驗證規則的情況下對多行進行多處更改。例如,如果需要確保總數列的值等於某行中借貸列的值,則可以將每一行都置入編輯模式,以便在使用者嘗試提交值之前掛起對行值的驗證。

BeginEdit方法在使用者更改資料繫結控制項的值時被隱式調用;EndEdit方法在您調用DataTable對象的 AcceptChanges方法時被隱式調用。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.