新聞中心
大家都知道ADO.NET是訪問數(shù)據(jù)庫的一種技術(shù),想要學(xué)好編程我們首先就要會訪問數(shù)據(jù)庫,現(xiàn)在我們就來看看關(guān)于ADO.NET吧。在ADO中,有三種可能方式用于更新ADO.NET數(shù)據(jù)源。一個是通過直接SQL語句,如INSERT, DELETE 或 UPDATE,或稍復(fù)雜、較成熟的存儲過程。另一個是通過批更新,你一次可以向服務(wù)器遞交某個表的新映射。第三個方法是使用服務(wù)器指針直接對字段更新。

創(chuàng)新互聯(lián)公司是一家專業(yè)從事成都網(wǎng)站設(shè)計、做網(wǎng)站、成都外貿(mào)網(wǎng)站建設(shè)公司、網(wǎng)頁設(shè)計的品牌網(wǎng)絡(luò)公司。如今是成都地區(qū)具影響力的網(wǎng)站設(shè)計公司,作為專業(yè)的成都網(wǎng)站建設(shè)公司,創(chuàng)新互聯(lián)公司依托強(qiáng)大的技術(shù)實力、以及多年的網(wǎng)站運(yùn)營經(jīng)驗,為您提供專業(yè)的成都網(wǎng)站建設(shè)、營銷型網(wǎng)站建設(shè)及網(wǎng)站設(shè)計開發(fā)服務(wù)!
#T#ADO.NET完全支持前兩種技術(shù),這涉及到不是的對象和方法。至于服務(wù)器指針,需要做進(jìn)一步的討論和確認(rèn),但到目前為止,在ADO .NET中它們只得到有限的支持。下面開始分析更新ADO .NET中數(shù)據(jù)源的方法和技術(shù)。本月,我將重點放在直接SQL命令和存儲過程上。在以后的專欄中,我將同時詳細(xì)介紹批更新和服務(wù)器指針。
OLE DB 和"管理"提供者
ADO .NET并不直接支持OLE DB提供者,但這并不是說你不能從ADO .NET中訪問OLE DB提供者。對此,我只是要表明一個特殊的管理提供者總是對訪問任何現(xiàn)有的有效OLE DB提供的調(diào)用進(jìn)行預(yù)處理。出于這個原因,你的ADO .NET永遠(yuǎn)不會直接作為一個OLE DB客戶。
管理提供者是在。NET中工作的一種模塊,它的工作方式與OLE DB在Win32? 和 COM環(huán)境中的工作方式相同。從任何角度來說,管理提供者是OLE DB的。NET對應(yīng)物。它們是簡化了的組件,并不象OLE DB那樣遵循復(fù)雜的通用的規(guī)范(如通用數(shù)據(jù)訪問)。更重要的是,管理提供者完全能在。NET的通用語言運(yùn)行時(Common Language Runtime ,CLR)環(huán)境中工作。相反,OLE DB提供者是一個老COM對象,在。NET環(huán)境中,它只能運(yùn)行在非管理窗口中。
為了訪問ADO.NET中的數(shù)據(jù),你應(yīng)當(dāng)遵循典型ADO會話中的同樣步驟。首先,創(chuàng)建鏈接,通過連接字符串指定參數(shù)。接著,實例化命令對象,設(shè)置正確的命令字和行為,然后執(zhí)行。最后,根據(jù)命令的期望輸出,或者你操縱結(jié)果,或者關(guān)閉鏈接,將其余工作留給應(yīng)用程序?! ∽⒁?,在ADO中可以減少一些步驟,如直接調(diào)用Connection對象的Execute方法。這種做法在ADO .NET中是不允許的,因為并不是所有類型的Connection對象具有Execute方法。
不同類型的鏈接對象?這又意味著什么呢?
ADO .NET要求你在鏈接時事先知道并指定將鏈接到的(管理)數(shù)據(jù)提供者的類型。在ADO中,你擁有Connection對象,這就足夠了,而不必考慮獲得和設(shè)置數(shù)據(jù)的物理通道。不論是使用OLE DB ,還是歸結(jié)為ODBC,通過供ODBC使用的通用OLE DB提供者,ADO 總是要求使用同種類型的Connection對象。在ADO .NET中情況就不是這樣了。
到目前為止,有兩種類型的管理提供者,一個專門用于SQL Server 7.0 和 2000,另一個用于訪問任何OLE DB提供者。通過管理提供者,容易辨別出這種設(shè)計方式與在ADO中允許ODBC數(shù)據(jù)源訪問OLE DB的方式是相同的。用于訪問ODBC數(shù)據(jù)源的第三方管理提供者現(xiàn)在處于測試階段。事實上,用于OLE DB的管理提供者不支持ADO中用于同ODBC驅(qū)動對話的MSDASQL OLE DB提供者。
SQL Server是在System.Data.SqlClient名稱空間中定義它的類的。OLE DB 管理提供者大部分定義在System.Data.OleDb名稱空間中。在ADO .NET中,不存在通用而又有用的鏈接類。存在一個DBConnection類,其它其它特定于提供者的鏈接類從該類派生,但它是一個抽象類。作為原形設(shè)計,它是有用的,但它不會直接在應(yīng)用程序中使用。因此,為打開一個鏈接,必須使用下面的兩個方法之一:SqlConnection 方法和 OleDbConnection方法。如果目標(biāo)是SQL Server 7.0, SQL Server 2000或更高版本,使用前者。如果目標(biāo)是OLE DB提供者,就應(yīng)當(dāng)使用后者。如果需要通過ODBC驅(qū)動器訪問數(shù)據(jù),就要使用ODBC .NET提供者的鏈接類(名為OdbcConnection)。
要訪問SQL Server數(shù)據(jù)庫,使用直接管理提供者將產(chǎn)生更加有效的代碼。然而,注意如果需要訪問SQL Server6.5,那么就必須求助于OLE DB提供者,并使用OleDbXxx類和用于OLE DB的管理提供者。因此,在ADO .NET中有許多成對的類,如SqlConnection 和 OleDbConnection, SqlCommand 和 OleDbCommand, SqlDataReader 和 OleDbDataReader等等。盡管不同的對間最大的不同可能在于它的前綴,但如果說它們對編程接口是相同的,卻是不對的??梢源_定的是,每對類做同樣的事情,但它們所有的接口反映的是底層的數(shù)據(jù)提供者。例如,在SqlConnection對象上沒有Provider屬性,而在類中沒有PacketSize 或 WorkStationId 概念。
在本文的后面部分,我將使用SQL Server管理提供者,這將意味著面向數(shù)據(jù)的ADO .NET類將帶有Sql前綴。在先前否認(rèn)聲明有效的前提下,不需要對代碼進(jìn)行修改或進(jìn)行有限修改,它就能工作,對于由OLE DB提供者暴露的ADO.NET數(shù)據(jù)源也是一樣的。
分享文章:關(guān)于更新ADO.NET數(shù)據(jù)源方法介紹
標(biāo)題鏈接:http://www.5511xx.com/article/dhhihdg.html


咨詢
建站咨詢
