自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

關(guān)于更新ADO.NET數(shù)據(jù)源方法介紹

開發(fā) 后端
這里主要就更新ADO.NET數(shù)據(jù)源的方法和技術(shù)做出了總結(jié),喜歡研究數(shù)據(jù)庫的朋友一定要看本篇的文章,它會(huì)給你帶來很大的幫助。

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

#T#ADO.NET完全支持前兩種技術(shù),這涉及到不是的對象和方法。至于服務(wù)器指針,需要做進(jìn)一步的討論和確認(rèn),但到目前為止,在ADO .NET中它們只得到有限的支持。下面開始分析更新ADO .NET中數(shù)據(jù)源的方法和技術(shù)。本月,我將重點(diǎn)放在直接SQL命令和存儲(chǔ)過程上。在以后的專欄中,我將同時(shí)詳細(xì)介紹批更新和服務(wù)器指針。

OLE DB 和"管理"提供者

ADO .NET并不直接支持OLE DB提供者,但這并不是說你不能從ADO .NET中訪問OLE DB提供者。對此,我只是要表明一個(gè)特殊的管理提供者總是對訪問任何現(xiàn)有的有效OLE DB提供的調(diào)用進(jìn)行預(yù)處理。出于這個(gè)原因,你的ADO .NET永遠(yuǎn)不會(huì)直接作為一個(gè)OLE DB客戶。

管理提供者是在。NET中工作的一種模塊,它的工作方式與OLE DB在Win32? 和 COM環(huán)境中的工作方式相同。從任何角度來說,管理提供者是OLE DB的。NET對應(yīng)物。它們是簡化了的組件,并不象OLE DB那樣遵循復(fù)雜的通用的規(guī)范(如通用數(shù)據(jù)訪問)。更重要的是,管理提供者完全能在。NET的通用語言運(yùn)行時(shí)(Common Language Runtime ,CLR)環(huán)境中工作。相反,OLE DB提供者是一個(gè)老COM對象,在。NET環(huán)境中,它只能運(yùn)行在非管理窗口中。

為了訪問ADO.NET中的數(shù)據(jù),你應(yīng)當(dāng)遵循典型ADO會(huì)話中的同樣步驟。首先,創(chuàng)建鏈接,通過連接字符串指定參數(shù)。接著,實(shí)例化命令對象,設(shè)置正確的命令字和行為,然后執(zhí)行。最后,根據(jù)命令的期望輸出,或者你操縱結(jié)果,或者關(guān)閉鏈接,將其余工作留給應(yīng)用程序?! ∽⒁猓贏DO中可以減少一些步驟,如直接調(diào)用Connection對象的Execute方法。這種做法在ADO .NET中是不允許的,因?yàn)椴⒉皇撬蓄愋偷腃onnection對象具有Execute方法。

不同類型的鏈接對象?這又意味著什么呢?

ADO .NET要求你在鏈接時(shí)事先知道并指定將鏈接到的(管理)數(shù)據(jù)提供者的類型。在ADO中,你擁有Connection對象,這就足夠了,而不必考慮獲得和設(shè)置數(shù)據(jù)的物理通道。不論是使用OLE DB ,還是歸結(jié)為ODBC,通過供ODBC使用的通用OLE DB提供者,ADO 總是要求使用同種類型的Connection對象。在ADO .NET中情況就不是這樣了。

到目前為止,有兩種類型的管理提供者,一個(gè)專門用于SQL Server 7.0 和 2000,另一個(gè)用于訪問任何OLE DB提供者。通過管理提供者,容易辨別出這種設(shè)計(jì)方式與在ADO中允許ODBC數(shù)據(jù)源訪問OLE DB的方式是相同的。用于訪問ODBC數(shù)據(jù)源的第三方管理提供者現(xiàn)在處于測試階段。事實(shí)上,用于OLE DB的管理提供者不支持ADO中用于同ODBC驅(qū)動(dòng)對話的MSDASQL OLE DB提供者。

SQL Server是在System.Data.SqlClient名稱空間中定義它的類的。OLE DB 管理提供者大部分定義在System.Data.OleDb名稱空間中。在ADO .NET中,不存在通用而又有用的鏈接類。存在一個(gè)DBConnection類,其它其它特定于提供者的鏈接類從該類派生,但它是一個(gè)抽象類。作為原形設(shè)計(jì),它是有用的,但它不會(huì)直接在應(yīng)用程序中使用。因此,為打開一個(gè)鏈接,必須使用下面的兩個(gè)方法之一:SqlConnection 方法和 OleDbConnection方法。如果目標(biāo)是SQL Server 7.0, SQL Server 2000或更高版本,使用前者。如果目標(biāo)是OLE DB提供者,就應(yīng)當(dāng)使用后者。如果需要通過ODBC驅(qū)動(dòng)器訪問數(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ù)源也是一樣的。

責(zé)任編輯:田樹 來源: 博客
相關(guān)推薦

2009-12-23 09:55:23

ADO.NET數(shù)據(jù)源

2009-11-12 11:29:42

ADO.NET連接數(shù)據(jù)

2009-12-24 16:09:42

ADO.NET數(shù)據(jù)源

2009-12-31 14:23:33

ADO.NET數(shù)據(jù)源

2009-08-13 11:17:34

什么是ADO.NET

2009-12-29 17:02:15

ADO.NET 管理

2009-11-03 17:12:33

ADO.NET Exe

2009-12-29 14:36:55

ADO.NET 數(shù)據(jù)集

2009-11-03 16:37:10

2009-12-25 14:23:35

ADO.NET設(shè)置

2009-11-04 09:34:47

ADO.NET Sql

2009-11-11 09:11:19

2010-01-04 13:56:50

ADO.NET應(yīng)用程序

2009-09-09 10:23:59

ADO.NET連接

2009-12-25 16:36:43

ADO.NET數(shù)據(jù)集

2009-12-30 14:59:42

ADO.NET數(shù)據(jù)集

2009-12-30 15:06:22

ADO.NET分析

2009-11-12 15:47:14

ADO.NET更新數(shù)據(jù)

2009-12-30 16:50:26

ADO.NET事務(wù)

2009-11-11 09:23:38

ADO.NET Con
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)