作者: 郜飞 小狮子 L\H,cimN
ADO.NET是微软的Microsoft ActiveX Data Objects (ADO)的下一代产品,是在微软的.NET中创建分布式和数据共享应用程序的应用程序开发接口(API)。 {afR?3GK
Qxh 1I?h
ADO.NET能被用在任何用户的应用程序,需要和OLE DB-compliant的数据源连接和通讯,例如Microsoft SQL Server。 =lqGt.x
bZ*J]1y(.
同时ADO.NET又保持着与以前的ADO模型有关的一些主要概念,它已经被极大的完善,并从不同的信息来源提供途径去获得结构化的数据----一个平台文本文件,从数据库管理系统获得的相关数据,或者是分级的XML数据----然而,所有都按照一个相容的,标准化的设计模型来执行。 L;k9}HWpP
06S-3bis
这篇文章意在简要的介绍ADO.NET的关键特性,重点讲述了在关系数据库管理系统(rdbms)中访问数据。 `SO"F,
4F>?G{ci
<eG8xC
*%xmCPJ
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 提供者进行访问的任何数据源。 O&u[^s/^
9hIcnPu
SQL Server被管理的提供者在MS SQL Server 7.0或以后的版本中使用叫做“tabulardata stream”的专用协议,而没有使用OLE DB, ADO 或 ODBC。 ]
6rr;S
t9B]V
ADO.NET被管理的提供者能够在这些OLE DB 提供者下工作。 SB'$?Kh
@9<MW
驱动程序 Driver _4jRUsvjY
提供者 Provider IT_Fs|$
Lz'05j3!
SQLOLEDB
Q>}*l|Ci
SQL OLE DB Provider ^}4=pkJ;s
L5tSS=
MSDAORA Fn~?YN
Oracle OLE DB Provider %XieKL
Cp2$I<T
JOLT >
%U
Jet OLE DB Provider A12 #v,
T};fy+iq
MSDASQL/SQLServer ODBC OK}+:Y
SQL Server ODBC Driver via OLE DB for ODBC Provider kK[m=rTx1$
7#BpGQJQ
MSDASQL/Jet ODBC r-$SF5uv
Jet ODBC Driver via OLE DB Provider for ODBC Provider <|'C|J_!
kU5chltGF
?Rj)x%fN
现在ADO.NET还不支持 MSDASQL/Oracle ODBC Driver(ORACLE OLE DB DRIVER FOR ODBC)。 76rNs|z~
(Wu_RXfCw_
以下章节将介绍每个被管理的提供者都可用的ADO.NET的核心组件 OBCRZ
'bpx
Connections--连接和管理数据库事务。 4EiEE{9V
Commands--向数据库发送的命令。 PKhH0O\_U
DataReaders--直接读取流数据。 u^T{sQ"_
DateSets 和 DateSetCommands--对驻留内存中的数据进行存储和操作。 \?_eQKiZ3
H"H&uA9"
dM{xPpnx
核心的ADO.NET功能基本上可以被概括为如下内容:
SoY=
_T 5ZL
Connection对象在Web页面和数据库间建立连接。Commands对象向数据库提供者发出命令,返回的结果以一种流的方式贯穿于这些连接中。结果集可以用DataReaders快速的读取,也可以储存到驻留内存的DateSets对象中,然后通过DateSetCommands对象让用户在数据集中访问和操作记录。开发者可以用过DateSet内置的方法在基础的数据源上去处理数据集。 ^y,%Tv>
i-'rS/R
为了使用.NET框架中的被管理提供者,需要把下面的名空间(namespaces)包括到.aspx页面中。 `)[bu
n
4:Yc@,
SQL被管理的提供者: Wv]NFHe#
IG1+_-H:
<%@ Import Namespace="System.Data.SQL" %> MH+t`/E0]
'{:WxGgi
, wT$L3
4%TY`
II
]C =+
&xlz80%
ADO被管理的提供者: i6p0(OS&D
=8?gx$r2
<%@ Import Namespace="System.Data.ADO" %> FL+^r6DQ
]:m}nJ_
fD#VI
piE9qXn
W[]N.d7G
5sD\4 g)HK
Connections h^h!OQK Q
DbdxHuKa>
微软在.NET框架中提供了两个Connection对象以建立连接到特定的数据库:SQLConnection和 ADOConnection。Connection对象能在已经创建的连接上通过调用open的方法来被明确的打开连接。下面的代码片断演示了用任一提供者创建和打开连接。 !YlyUHD
);*A$C9RA
SQLConnection E }aTH
:bxq%D%|o
[C#] OQ>r;)/
String connectionString = "server=localhost; uid=sa; pwd=; database=northwind"; Br2ZloJ@+
SQLConnection myConn = new SQLConnection(connectionString); G!J{$0.
myConn.Open(); T.vkGB=QZ%
1'dL8Y
[VB] 6@TGa%:G
Dim connectionString As String = _ $\xS~w
m connectionString As String = _ ewYZ} "o
"server=localhost; uid=sa; pwd=; database=northwind" T/#$44ub
Dim myConn As SQLConnection = New SQLConnection(connectionString) &y?L^Aq
myConn.Open FTx&] QN?
Y3+GBqP
jFBLElE
'OKDB7Ni
ADOConnection
5gV%jQgkC
beyC't
[C#] Farcd!}
String connectionString = "Provider=SQLOLEDB.1; Data Source=localhost; uid=sa; pwd=; Initial Catalog=Northwind;" /`YHPeXu
ADOConnection myConn = new ADOConnection(connectionString); #\kYGr-G)
myConn.Open(); %Y"@VcN
tl |Qw";I
[VB] Zk*/~f|\
Dim connectionString As String = _ Cf'O*RFD
ost; uid=sa; pwd=; Initial Catalog=Northwind;" 8-Ik .,}
ADOConnection myConn = new ADOConnection(connectionString); je6H}eWTC6
myConn.Open(); vDgf}
:^+ aJ]
[VB] 0#~e KFy
Dim connectionString As String = _ H]5%"(h
"Provider=SQLOLEDB.1; Data Source=localhost; " & _ >}`q4U6$
"uid=sa; pwd=; Initial Catalog=Nohwind" 9S
~!!7oj
Dim myConn As ADOConnection = New ADOConnection(connectionString) )x1LOMe
myConn.Open() A ^YHtJ
DGMvYNKTj
%UuV^C
eJ+V!K'H2
Commands u%FG%
j?C
&h.E
B
^NB@wuf7
在建立了连接以后,下一步要做的就是对数据库运行的SQL语句。最简单直接的方法是通过ADO和SQL命令对象来实现。 E\2|
)J&