作者: 郜飞 小狮子 }8LTYn
ADO.NET是微软的Microsoft ActiveX Data Objects (ADO)的下一代产品,是在微软的.NET中创建分布式和数据共享应用程序的应用程序开发接口(API)。 %E"dha JY
PR2;+i3
ADO.NET能被用在任何用户的应用程序,需要和OLE DB-compliant的数据源连接和通讯,例如Microsoft SQL Server。 /cX%XZg
NY3/mS3w
同时ADO.NET又保持着与以前的ADO模型有关的一些主要概念,它已经被极大的完善,并从不同的信息来源提供途径去获得结构化的数据----一个平台文本文件,从数据库管理系统获得的相关数据,或者是分级的XML数据----然而,所有都按照一个相容的,标准化的设计模型来执行。 bH Nf>
>(\Z-I&YQ
这篇文章意在简要的介绍ADO.NET的关键特性,重点讲述了在关系数据库管理系统(rdbms)中访问数据。 lc(}[Z/|V
Gl6M(<f\5
VBN=xg}
8-s7s!j
SQL Server 7.0(及更新版本)以及可以通过 OLE DB 提供者进行访问的任何数据源。这些又称为被管理的提供者(Managed Provider)。.NET框架的数据存取API提供了两种方式分别识别并处理两种类型的数据源:SQL Server 7.0(及更新版本)和可以通过 OLE DB 提供者进行访问的任何数据源。SQL(System.Data.SQL)库可以直接联结到SQL Server的数据,而ADO (System.Data.ADO)库可用于其他通过OLE DB 提供者进行访问的任何数据源。 =M ."^X
DX(!G a
SQL Server被管理的提供者在MS SQL Server 7.0或以后的版本中使用叫做“tabulardata stream”的专用协议,而没有使用OLE DB, ADO 或 ODBC。 kQ99{lH,5
OnND(YiX
ADO.NET被管理的提供者能够在这些OLE DB 提供者下工作。 2EC<8}CG
B1k;!@@14
驱动程序 Driver T( z/Jm3
提供者 Provider ..fbRt
`L
m9!?
SQLOLEDB
'E)g )@^
SQL OLE DB Provider #JYH5:*
?m\?
#
MSDAORA K9tr Iy$v
Oracle OLE DB Provider -%ftPfm
F T$x#>
JOLT 0x2[*pJ|IW
Jet OLE DB Provider <i ";5+
7?p>v34A
MSDASQL/SQLServer ODBC Vv_lBYV
SQL Server ODBC Driver via OLE DB for ODBC Provider =`OnFdI
Fql|0Fq
MSDASQL/Jet ODBC `9&~fWu
Jet ODBC Driver via OLE DB Provider for ODBC Provider J,D^fVIw
QIC? `hk1
fA"9eUu
现在ADO.NET还不支持 MSDASQL/Oracle ODBC Driver(ORACLE OLE DB DRIVER FOR ODBC)。 %hVI*p3
~[Z,:=z
以下章节将介绍每个被管理的提供者都可用的ADO.NET的核心组件 mO0}Go8
y4N2gBTKu
Connections--连接和管理数据库事务。 il[waUfmD
Commands--向数据库发送的命令。 `6\u!#
DataReaders--直接读取流数据。 /2x@Z>
DateSets 和 DateSetCommands--对驻留内存中的数据进行存储和操作。 y1bo28
V|vXxWm/
:I(d-,C
核心的ADO.NET功能基本上可以被概括为如下内容: sEHA?UP$<F
X!|K 4Z!k
Connection对象在Web页面和数据库间建立连接。Commands对象向数据库提供者发出命令,返回的结果以一种流的方式贯穿于这些连接中。结果集可以用DataReaders快速的读取,也可以储存到驻留内存的DateSets对象中,然后通过DateSetCommands对象让用户在数据集中访问和操作记录。开发者可以用过DateSet内置的方法在基础的数据源上去处理数据集。 b#W(&b^q
zI$'D|A
为了使用.NET框架中的被管理提供者,需要把下面的名空间(namespaces)包括到.aspx页面中。 YZZog 6%
/wPW2<|"X.
SQL被管理的提供者: eZ|_wB'r
lQqP4-E?
<%@ Import Namespace="System.Data.SQL" %> 5I&Dk4v
Y(;u)uN_
^ pNA_s!S
T_ga?G<
4Cp)!Bq?/
a49t/
ADO被管理的提供者: 3a0% J'
F13vc~$Ky
<%@ Import Namespace="System.Data.ADO" %> ?D+H2[n\a
_BI[F
m
srryVqgS
:U,-v
UG=],\E2
l9z{pZ\KM
Connections X}Fqif4A
NL-V",gI-~
微软在.NET框架中提供了两个Connection对象以建立连接到特定的数据库:SQLConnection和 ADOConnection。Connection对象能在已经创建的连接上通过调用open的方法来被明确的打开连接。下面的代码片断演示了用任一提供者创建和打开连接。 Y'Yu1mH)
5Bp>*MR/".
SQLConnection &HtG&RvQf
*YP:-
[C#] w3FEX$`_
String connectionString = "server=localhost; uid=sa; pwd=; database=northwind"; R,`3 SW()
SQLConnection myConn = new SQLConnection(connectionString); ltlnXjRUv
myConn.Open(); TGZr
[
e3WEsD+
[VB] v9 8s78
Dim connectionString As String = _ F./P,hhN9
m connectionString As String = _ "h:#'y$V
"server=localhost; uid=sa; pwd=; database=northwind" 59H~qE1Md
Dim myConn As SQLConnection = New SQLConnection(connectionString) &F.L*M
myConn.Open oA+'9/UY
Ki dbcZ
6E$ET5p&