具體說明ADO.NET應(yīng)用程序具體方法
搞了一整天的ADO.NET應(yīng)用程序,我都快崩潰了! ,以后再也不能隨便的關(guān)機(jī)了,因?yàn)檫@次的不小心,幾乎所有的Net安裝,調(diào)試問題都被我碰到了,還好,我一個(gè)個(gè)把他記錄下來了,同時(shí),在相關(guān)論壇上找了一些相關(guān)的解決辦法,分享一下,供大家相互學(xué)習(xí)交流
ADO.NET應(yīng)用程序要從數(shù)據(jù)源里讀取數(shù)據(jù),首先得創(chuàng)建一個(gè)連接對象.這個(gè)連接對象可以是SQLConnection 或是 ADOConnection,這取決于所采用的目標(biāo)提供程序. 需要記住的是,雖然在這里不做推薦,但你也可以利用ADO .NET 類來連接到SQL Server數(shù)據(jù)庫. 這種方法唯一不足是,
代碼需要通過一個(gè)不必要的額外代碼層. 首先它會(huì)調(diào)入ADO的托管提供程序, 然后ADO的托管提供程序再調(diào)用SQL Server OLE DB 提供程序. 如同OLE DB 提供程序做的一樣,SQL Server 托管提供程序會(huì)直接操作數(shù)據(jù),
關(guān)于ADO 和ADO.NET在連接對象上***的差別在于ADO.NET連接不支持CursorLocation屬性.與其說這是一個(gè)文檔BUG,還不如認(rèn)為這是一個(gè)備具爭議的設(shè)計(jì)問題.為強(qiáng)制執(zhí)行它的以數(shù)據(jù)為中心的基準(zhǔn),ADO.NET應(yīng)用程沒有游標(biāo)的顯示實(shí)現(xiàn).
在ADO中,你已習(xí)慣于利用游標(biāo)將記錄從數(shù)據(jù)庫或其它OLE DB兼容的數(shù)據(jù)源中抽取, 你可以選擇客戶端或是服務(wù)器端游標(biāo),每種游標(biāo)都有幾個(gè)預(yù)先設(shè)定的游標(biāo)類型. 而在ADO.NET中更多的是從數(shù)據(jù)源中抽取數(shù)據(jù),并且為讀取和分析數(shù)據(jù)提供新的編程接口
在ADO中,通過規(guī)定連接和命令文本,你可以創(chuàng)建一個(gè)Recordset 對象.對于游標(biāo)的位置和類型Recordset有一些規(guī)定.你可以按下面的方法來讀取數(shù)據(jù).在內(nèi)存中創(chuàng)建選定記錄的靜態(tài)副本,然后在斷開與數(shù)據(jù)源的連接時(shí)對副本進(jìn)行處理,ADO稱之為靜態(tài)游標(biāo).
通過快速的, 僅向前的, 只讀游標(biāo)來滾動(dòng)數(shù)據(jù),,ADO.NET應(yīng)用程稱之為僅向前游標(biāo).通過服務(wù)器端游標(biāo)來訪問數(shù)據(jù),需要良好的連接,但您可以在不同層面上檢測由其它連線用戶輸入的信息,ADO稱之為: 動(dòng)態(tài)游標(biāo)。#t#
頭兩種都是在斷開的recordsets上進(jìn)行操作,并從客戶端緩存中讀取信息,另外,前兩種方式也常被用于面向WEB的環(huán)境中以及全新的 n-tier 系統(tǒng)當(dāng)中.在ADO中,以上所有這些方式與不同類型的游標(biāo)相對應(yīng) .在文中,你將會(huì)發(fā)現(xiàn),ADO.NET應(yīng)用程雖然與ADO不同,但它具備了ADO的所有功能.相對照來說,你的代碼將從實(shí)際的數(shù)據(jù)源及其物理存儲(chǔ)媒介和格式中抽取數(shù)據(jù).
ADO.NET能夠使DataSet 和 DataReader 將數(shù)據(jù)從數(shù)據(jù)源中抽取出來.前者是記錄在內(nèi)存中的緩存,你可以從任意方向訪問并隨意作出修改. 后者是高度優(yōu)化的對象,在只讀紀(jì)錄集中以僅向前方式向前移動(dòng)。注: DataSet 看起來象是靜態(tài)游標(biāo),但實(shí)際上,在.NET中,與ADO.NET應(yīng)用程只讀游標(biāo)相對應(yīng)的是DataReader 對象.