分析ADO.NET操作設(shè)置有效說明介紹
ADO.NET操作不是ADO為適應(yīng).NET基礎(chǔ)構(gòu)造而進(jìn)行改進(jìn)的版本.當(dāng)你慢慢了解了ADO.NET操作的語法,代碼設(shè)計(jì)以及移植后,你就會清楚了,數(shù)據(jù)集使這項(xiàng)工作很難完成。你們支持這一點(diǎn)嗎?
應(yīng)用程序運(yùn)行跨多個資源結(jié)合不同操作(例如,將定單插入 SQL Server 數(shù)據(jù)庫、將消息寫入 Microsoft 消息隊(duì)列 (MSMQ) 隊(duì)列、發(fā)送電子郵件以及從 Oracle 數(shù)據(jù)庫檢索數(shù)據(jù))的事務(wù)。
通過提供基于聲明性事務(wù)的編程模型,COM+ 使應(yīng)用程序可以很容易地運(yùn)行跨不同種類的資源的事務(wù)。這種做法的缺點(diǎn)是,由于存在 DTC 和 COM 互操作性開銷,導(dǎo)致性能降低,而且不支持嵌套事務(wù)。#t#
ASP.NET 頁、Web Service 方法和 .NET 類通過設(shè)置聲明性事務(wù)屬性都可以標(biāo)記為事務(wù)性,要參與自動事務(wù),.ADO.NET操作必須是從 System.EnterpriseServices.ServicedComponent 類繼承的,這可使得該 .NET 類能夠在 COM+ 內(nèi)運(yùn)行。
在這個過程中,要將 COM+ 與 DTC 進(jìn)行交互以創(chuàng)建一個分布式事務(wù),ADO.NET操作也要登記后臺的所有資源連接。您還需要對該類設(shè)置聲明性事務(wù)屬性以確定其事務(wù)性行為。 類的事務(wù)屬性可以設(shè)置為以下任何選項(xiàng): “禁用” — 指示該對象從不在 COM+ 事務(wù)中創(chuàng)建。該對象可以直接使用 DTC 來獲得事務(wù)性支持。
NotSupported— 指示該對象從不在事務(wù)中創(chuàng)建。 “支持”— 指示該對象在其創(chuàng)建者的事務(wù)的上下文中運(yùn)行。如果該對象本身是根對象,或者其創(chuàng)建者不在事務(wù)中運(yùn)行,則該對象將在不使用事務(wù)的情況下創(chuàng)建。
“必選”— 指示該對象在其創(chuàng)建者的事務(wù)的上下文中運(yùn)行。如果該對象本身是根對象,或者其創(chuàng)建者不在事務(wù)中運(yùn)行,則該對象將使用一個新事務(wù)來創(chuàng)建。 RequiresNew— 指示該對象需要一個事務(wù),并且該對象使用新事務(wù)來創(chuàng)建。
ADO.NET操作能夠使DataSet 和 DataReader 將數(shù)據(jù)從數(shù)據(jù)源中抽取出來.前者是記錄在內(nèi)存中的緩存,你可以從任意方向訪問并隨意作出修改. 后者是高度優(yōu)化的對象,在只讀紀(jì)錄集中以僅向前方式向前移動。注: DataSet 看起來象是靜態(tài)游標(biāo),但實(shí)際上,在.NET中,與ADO只讀游標(biāo)相對應(yīng)的是DataReader 對象.
在ADO.NET操作中,雖然對于服務(wù)器端的游標(biāo)不提供任何支持,但這不意味著你就不能使用游標(biāo).實(shí)際上,你所需要做的步驟是在.NET中輸入ADO庫.你只需在references node上單擊右鍵,就可以在你自己的程序里運(yùn)行本地ADO 對象.