ADO.NET迅速起步
發(fā)表時間:2024-06-13 來源:明輝站整理相關軟件相關文章人氣:
[摘要]ADO.NET是微軟的Microsoft ActiveX Data Objects (ADO)的下一代產品,是在微軟的.NET中創(chuàng)建分布式和數(shù)據(jù)共享應用程序的應用程序開發(fā)接口(API)。 ADO.NET能被用在任何用戶的應用程序,需要和OLE DB-compliant的數(shù)據(jù)源連接和通訊,例...
ADO.NET是微軟的Microsoft ActiveX Data Objects (ADO)的下一代產品,是在微軟的.NET中創(chuàng)建分布式和數(shù)據(jù)共享應用程序的應用程序開發(fā)接口(API)。
ADO.NET能被用在任何用戶的應用程序,需要和OLE DB-compliant的數(shù)據(jù)源連接和通訊,例如Microsoft SQL Server。
同時ADO.NET又保持著與以前的ADO模型有關的一些主要概念,它已經被極大的完善,并從不同的信息來源提供途徑去獲得結構化的數(shù)據(jù)----一個平臺文本文件,從數(shù)據(jù)庫管理系統(tǒng)獲得的相關數(shù)據(jù),或者是分級的XML數(shù)據(jù)----然而,所有都按照一個相容的,標準化的設計模型來執(zhí)行。
這篇文章意在簡要的介紹ADO.NET的關鍵特性,重點講述了在關系數(shù)據(jù)庫管理系統(tǒng)(rdbms)中訪問數(shù)據(jù)。
快速瀏覽
SQL Server 7.0(及更新版本)以及可以通過 OLE DB 提供者進行訪問的任何數(shù)據(jù)源。這些又稱為被管理的提供者(Managed Provider)。.NET框架的數(shù)據(jù)存取API提供了兩種方式分別識別并處理兩種類型的數(shù)據(jù)源:SQL Server 7.0(及更新版本)和可以通過 OLE DB 提供者進行訪問的任何數(shù)據(jù)源。SQL(System.Data.SQL)庫可以直接聯(lián)結到SQL Server的數(shù)據(jù),而ADO (System.Data.ADO)庫可用于其他通過OLE DB 提供者進行訪問的任何數(shù)據(jù)源。
SQL Server被管理的提供者在MS SQL Server 7.0或以后的版本中使用叫做“tabulardata stream”的專用協(xié)議,而沒有使用OLE DB, ADO 或 ODBC。
ADO.NET被管理的提供者能夠在這些OLE DB 提供者下工作。
驅動程序 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é)將介紹每個被管理的提供者都可用的ADO.NET的核心組件
Connections--連接和管理數(shù)據(jù)庫事務。
Commands--向數(shù)據(jù)庫發(fā)送的命令。
DataReaders--直接讀取流數(shù)據(jù)。
DateSets 和 DateSetCommands--對駐留內存中的數(shù)據(jù)進行存儲和操作。
核心的ADO.NET功能基本上可以被概括為如下內容:
Connection對象在Web頁面和數(shù)據(jù)庫間建立連接。Commands對象向數(shù)據(jù)庫提供者發(fā)出命令,返回的結果以一種流的方式貫穿于這些連接中。結果集可以用DataReaders快速的讀取,也可以儲存到駐留內存的DateSets對象中,然后通過DateSetCommands對象讓用戶在數(shù)據(jù)集中訪問和操作記錄。開發(fā)者可以用過DateSet內置的方法在基礎的數(shù)據(jù)源上去處理數(shù)據(jù)集。
為了使用.NET框架中的被管理提供者,需要把下面的名空間(namespaces)包括到.aspx頁面中。
SQL被管理的提供者:
<%@ Import Namespace="System.Data.SQL" %>
ADO被管理的提供者:
<%@ Import Namespace="System.Data.ADO" %>
Connections
微軟在.NET框架中提供了兩個Connection對象以建立連接到特定的數(shù)據(jù)庫:SQLConnection和 ADOConnection。Connection對象能在已經創(chuàng)建的連接上通過調用open的方法來被明確的打開連接。下面的代碼片斷演示了用任一提供者創(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
在建立了連接以后,下一步要做的就是對數(shù)據(jù)庫運行的SQL語句。最簡單直接的方法是通過ADO和SQL命令對象來實現(xiàn)。
Command對象可以給予提供者一些該如何操作數(shù)據(jù)庫信息的指令。
一個命令(Command)可以用典型的SQL語句來表達,包括執(zhí)行選擇查詢(select query)來返回記錄集,執(zhí)行行動查詢(action query)來 更新(增加、編輯或刪除)數(shù)據(jù)庫的記錄,或者創(chuàng)建并修改數(shù)據(jù)庫的表結構。當然命令(Command)也可以傳遞參數(shù)并返回值。
Commands可以被明確的界定,或者調用數(shù)據(jù)庫中的存儲過程。接下來的小段代碼證明了在建立連接之后如何去發(fā)出一個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] 下一頁