明輝手游網(wǎng)中心:是一個(gè)免費(fèi)提供流行視頻軟件教程、在線學(xué)習(xí)分享的學(xué)習(xí)平臺(tái)!

ADO.NET迅速起步

[摘要]ADO.NET是微軟的Microsoft ActiveX Data Objects (ADO)的下一代產(chǎn)品,是在微軟的.NET中創(chuàng)建分布式和數(shù)據(jù)共享應(yīng)用程序的應(yīng)用程序開發(fā)接口(API)。 ADO.NET能被用在任何用戶的應(yīng)用程序,需要和OLE DB-compliant的數(shù)據(jù)源連接和通訊,例...
    ADO.NET是微軟的Microsoft ActiveX Data Objects (ADO)的下一代產(chǎn)品,是在微軟的.NET中創(chuàng)建分布式和數(shù)據(jù)共享應(yīng)用程序的應(yīng)用程序開發(fā)接口(API)。

    ADO.NET能被用在任何用戶的應(yīng)用程序,需要和OLE DB-compliant的數(shù)據(jù)源連接和通訊,例如Microsoft SQL Server。

    同時(shí)ADO.NET又保持著與以前的ADO模型有關(guān)的一些主要概念,它已經(jīng)被極大的完善,并從不同的信息來(lái)源提供途徑去獲得結(jié)構(gòu)化的數(shù)據(jù)----一個(gè)平臺(tái)文本文件,從數(shù)據(jù)庫(kù)管理系統(tǒng)獲得的相關(guān)數(shù)據(jù),或者是分級(jí)的XML數(shù)據(jù)----然而,所有都按照一個(gè)相容的,標(biāo)準(zhǔn)化的設(shè)計(jì)模型來(lái)執(zhí)行。

這篇文章意在簡(jiǎn)要的介紹ADO.NET的關(guān)鍵特性,重點(diǎn)講述了在關(guān)系數(shù)據(jù)庫(kù)管理系統(tǒng)(rdbms)中訪問(wèn)數(shù)據(jù)。

快速瀏覽

    SQL Server 7.0(及更新版本)以及可以通過(guò) OLE DB 提供者進(jìn)行訪問(wèn)的任何數(shù)據(jù)源。這些又稱為被管理的提供者(Managed Provider)。.NET框架的數(shù)據(jù)存取API提供了兩種方式分別識(shí)別并處理兩種類型的數(shù)據(jù)源:SQL Server 7.0(及更新版本)和可以通過(guò) OLE DB 提供者進(jìn)行訪問(wèn)的任何數(shù)據(jù)源。SQL(System.Data.SQL)庫(kù)可以直接聯(lián)結(jié)到SQL Server的數(shù)據(jù),而ADO (System.Data.ADO)庫(kù)可用于其他通過(guò)OLE DB 提供者進(jìn)行訪問(wèn)的任何數(shù)據(jù)源。

    SQL Server被管理的提供者在MS SQL Server 7.0或以后的版本中使用叫做“tabulardata stream”的專用協(xié)議,而沒有使用OLE DB, ADO 或 ODBC。

ADO.NET被管理的提供者能夠在這些OLE DB 提供者下工作。

 驅(qū)動(dòng)程序 Driver
 提供者 Provider

 SQLOLEDB
 SQL OLE DB Provider

 MSDAORA
 Oracle OLE DB Provider

 JOLT
 Jet OLE DB Provider

 MSDASQL/SQLServer ODBC
 SQL Server ODBC Driver via OLE DB for ODBC Provider

 MSDASQL/Jet ODBC
 Jet ODBC Driver via OLE DB Provider for ODBC Provider


現(xiàn)在ADO.NET還不支持 MSDASQL/Oracle ODBC Driver(ORACLE OLE DB DRIVER FOR ODBC)。

以下章節(jié)將介紹每個(gè)被管理的提供者都可用的ADO.NET的核心組件

Connections--連接和管理數(shù)據(jù)庫(kù)事務(wù)。
Commands--向數(shù)據(jù)庫(kù)發(fā)送的命令。
DataReaders--直接讀取流數(shù)據(jù)。
DateSets 和 DateSetCommands--對(duì)駐留內(nèi)存中的數(shù)據(jù)進(jìn)行存儲(chǔ)和操作。


核心的ADO.NET功能基本上可以被概括為如下內(nèi)容:

    Connection對(duì)象在Web頁(yè)面和數(shù)據(jù)庫(kù)間建立連接。Commands對(duì)象向數(shù)據(jù)庫(kù)提供者發(fā)出命令,返回的結(jié)果以一種流的方式貫穿于這些連接中。結(jié)果集可以用DataReaders快速的讀取,也可以儲(chǔ)存到駐留內(nèi)存的DateSets對(duì)象中,然后通過(guò)DateSetCommands對(duì)象讓用戶在數(shù)據(jù)集中訪問(wèn)和操作記錄。開發(fā)者可以用過(guò)DateSet內(nèi)置的方法在基礎(chǔ)的數(shù)據(jù)源上去處理數(shù)據(jù)集。

為了使用.NET框架中的被管理提供者,需要把下面的名空間(namespaces)包括到.aspx頁(yè)面中。

SQL被管理的提供者:

<%@ Import Namespace="System.Data.SQL" %>


 


ADO被管理的提供者:

<%@ Import Namespace="System.Data.ADO" %>


 


Connections

    微軟在.NET框架中提供了兩個(gè)Connection對(duì)象以建立連接到特定的數(shù)據(jù)庫(kù):SQLConnection和 ADOConnection。Connection對(duì)象能在已經(jīng)創(chuàng)建的連接上通過(guò)調(diào)用open的方法來(lái)被明確的打開連接。下面的代碼片斷演示了用任一提供者創(chuàng)建和打開連接。

SQLConnection

[C#]
String connectionString = "server=localhost; uid=sa; pwd=; database=northwind";
SQLConnection myConn = new SQLConnection(connectionString);
myConn.Open();

[VB]
Dim connectionString As String = _
 m connectionString As String = _
   "server=localhost; uid=sa; pwd=; database=northwind"
Dim myConn As SQLConnection = New SQLConnection(connectionString)
myConn.Open



ADOConnection

[C#]
String connectionString = "Provider=SQLOLEDB.1; Data Source=localhost; uid=sa; pwd=; Initial Catalog=Northwind;"
ADOConnection myConn = new ADOConnection(connectionString);
myConn.Open();

[VB]
Dim connectionString As String = _
 ost; uid=sa; pwd=; Initial Catalog=Northwind;"
ADOConnection myConn = new ADOConnection(connectionString);
myConn.Open();

[VB]
Dim connectionString As String = _
   "Provider=SQLOLEDB.1; Data Source=localhost; " & _
   "uid=sa; pwd=; Initial Catalog=Nohwind"
Dim myConn As ADOConnection = New ADOConnection(connectionString)
myConn.Open()



Commands


在建立了連接以后,下一步要做的就是對(duì)數(shù)據(jù)庫(kù)運(yùn)行的SQL語(yǔ)句。最簡(jiǎn)單直接的方法是通過(guò)ADO和SQL命令對(duì)象來(lái)實(shí)現(xiàn)。

Command對(duì)象可以給予提供者一些該如何操作數(shù)據(jù)庫(kù)信息的指令。

一個(gè)命令(Command)可以用典型的SQL語(yǔ)句來(lái)表達(dá),包括執(zhí)行選擇查詢(select query)來(lái)返回記錄集,執(zhí)行行動(dòng)查詢(action query)來(lái) 更新(增加、編輯或刪除)數(shù)據(jù)庫(kù)的記錄,或者創(chuàng)建并修改數(shù)據(jù)庫(kù)的表結(jié)構(gòu)。當(dāng)然命令(Command)也可以傳遞參數(shù)并返回值。

Commands可以被明確的界定,或者調(diào)用數(shù)據(jù)庫(kù)中的存儲(chǔ)過(guò)程。接下來(lái)的小段代碼證明了在建立連接之后如何去發(fā)出一個(gè)Select命令。

SQLCommand

[C#]
String SQLStmt = " SELECT * FROM Customers";
SQLCommand myCommand = new SQLCommand(SQLStmt, myConn);

[VB]
Dim SQlStmt As String = "SELECT * FROM Customers"
Dim myCommand As SQLCommand = New SQLCommand(SQLStmt, myConn)

[1] [2]  下一頁(yè)




標(biāo)簽:ADO.NET迅速起步