如何進行ADO.NET 批處理使用
本文介紹ADO.NET 批處理表示一種指示參數值的間接方式。您可以使用列名設置 SourceColumn 屬性,并且使批處理更新機制不時地提取有效值,而不是使用 Value 屬性來進行調試。
“數據表” 中的每一行都是通過 DataRow 對象呈現的。DataRow 對象主要是作為父 “數據表” 對象的 Rows 集合的一個元素而存在的。從概念上來看,數據庫行固有地鏈接到了某個給定表的結構。就是由于這個原因,ADO.NET 中的 DataRow 類不提供公用構造函數。
創建新 DataRow 對象的唯一方式是借助于對 “數據表” 對象的某個實時實例調用名為ADO.NET 批處理的方法。剛剛創建好的行還不屬于父表的 Rows 集合,但該行與此集合的關系決定了該行的狀態。下表顯示了 RowState 屬性的一些可取值。這些值組合在了 DataRowState 枚舉中。
每一行的 ADO.NET 批處理 屬性都會影響 HasChanges 方法的返回值以及 GetChanges 返回的子數據集的內容。#t#
從這些可取值的范圍可以看出,RowState 的值主要取決于對行已經執行的操作。ADO.NET 批處理表基于兩個方法 - AcceptChanges 和 RejectChanges - 來實現類似事務處理的提交模型。從數據源下載表時或在內存中新建表時,所有行都是沒有更改的。您輸入的所有更改不會立即變為永久性更改,隨時都可以通過調用 RejectChanges 來回滾更改。您可以在三個級別調用 RejectChanges 方法:
在數據集級別上可拒絕所有更改(無論是什么更改)。
◆在數據表級別上可取消某個表中的所有更改。
◆在某個特定的行級別上可還原到該行以前的狀態。
◆在數據集級別上可拒絕所有更改(無論是什么更改)。
方法 AcceptChanges 能夠提交所有正在進行的更改。它使得數據集會將當前值接受為新的原始值。因此,ADO.NET 批處理所有掛起的更改都被清除。與 RejectChanges 一樣,也可以對整個數據集、某個表或某個行調用 AcceptChanges。
當您開始一個ADO.NET 批處理更新操作時,只會考慮提交那些標記為 Added、Deleted 和 Modified 的行。如果您恰好在批處理更新之前調用了 AcceptChanges,則對數據源不進行任何持久更改。