??xml version="1.0" encoding="utf-8" standalone="yes"?>91精品综合久久久久久五月天,久久亚洲精品爱爱,亚洲精品在线免费http://www.aygfsteel.com/davidgw/category/24392.htmlMiLifezh-cnThu, 26 Jul 2007 09:06:03 GMTThu, 26 Jul 2007 09:06:03 GMT60ADO and ADO.nethttp://www.aygfsteel.com/davidgw/archive/2007/07/25/132342.htmlPicassoPicassoWed, 25 Jul 2007 08:46:00 GMThttp://www.aygfsteel.com/davidgw/archive/2007/07/25/132342.htmlhttp://www.aygfsteel.com/davidgw/comments/132342.htmlhttp://www.aygfsteel.com/davidgw/archive/2007/07/25/132342.html#Feedback0http://www.aygfsteel.com/davidgw/comments/commentRss/132342.htmlhttp://www.aygfsteel.com/davidgw/services/trackbacks/132342.html
  {:ADO的全名是ActiveX Data Object(ActiveX数据对象),是一l优化的讉K数据库的专用对象集,它ؓASP提供了完整的站点数据库解x案,它作用在服务器端Q提供含有数据库信息的主内容,通过执行SQL命oQ让用户在浏览器画面中输入,更新和删除站Ҏ据库的信息?

  ADO主要包括Connection,Recordset和Command三个对象, 它们的主要功能如下:

  ·Connection对象Q负责打开或连接数据库文gQ?
  ·Recordset对象Q存取数据库的内容;
  ·Command对象Q对数据库下达行动查询指令,以及执行SQL Server的存储过E?

使用Recordset对象和Command对象来访问数据库的区别在哪里Q?

  {:Recordset对象会要求数据库传送所有的数据Q那么数据量很大的时候就会造成|络的阻塞和数据库服务器的负药重,因此整体的执行效率会降低?
利用Command对象直接调用SQL语句Q所执行的操作是在数据库服务器中q行的,昄会有很高的执行效率。特别是在服务器端执行创建完成的存储q程Q可以降低网l流量,另外Q由于事先进行了语法分析Q可以提高整体的执行效率?


什么是ADO.NET架构

如今大部分的应用E序都需要后台的数据库来为其提供大量的数据来源,而应用程序与数据库之间的交流UCؓ数据讉K。?/span>ASP.NET则?/span>ADO.NETQ?/span>Active X Data ObjectQ作为数据的讉K与操作的协议Q从而得我们可以在Internet上操作这些数据?/span>

ADO.NET的数据访问分Z大部分:数据?/span>(DataSet)与数据提供源(Data ProviderQ我q不清楚中文该怎么译Q就叫它数据提供源好了,不要?#8220;数据?#8221;—Data Source搞؜)?/span>

 

数据集:

数据集是一个非在线Q完全由内存表示的一pd数据Q可以被看作一份本地磁盘数据库中部分数据的拯。数据集完全ȝ内存Q可以被独立于数据库地访问或者修攏V当数据集的修改完成后,更改可以被再ơ写入数据库Q从而保留我们所做过的更攏V数据集中的数据可以׃Q何数据源(Data Source)提供Q比?/span>SQL Server或?/span>Oracle?/span>

 

数据提供源:

数据提供源用于提供ƈl护应用E序与数据库之间的连接?/font>

数据提供源是一pdZ提供更有效率的访问而协同工作的lg。如今微软在ADO.NET中提供了两组数据提供源,一l叫?/span>SQL Data ProviderQ?/span>SQL数据提供源)Q用于提供应用程序与SQL Server 7.0或者更高版本的讉K。另一l叫?/span>OleDb DataProviderQ?/span>Object Linking and Embedding DataBase DataProviderQ,可以允许我们讉K例如Oracle 之类的第三方数据源?/span>

每组数据提供源中都包含了如下四个对象Q?/font>

Connect对象提供了对数据库的q接?/span>

Command对象可以用来执行命o?/span>

DataReader对象提供了只ȝ数据记录集?/span>

DataAdapter对象提供了对数据集更新或者修改的操作?/span>

 

M来说Q?/span>ADO.NET讉K数据可以被概括ؓ以下步骤Q?/span>

首先应用E序创徏一?/span>Connect对象用来建立与数据库之间的连接。然?/span>Command对象提供了执行命令的接口Q可以对数据库执行相应的命o。当命o执行后数据库q回了大于零个数据时Q?/span>DataReader会被q回从而提供对q回的结果集的数据访问。或者,DataAdapter可以被用来填充数据集Q然后数据库可以?/span>Command对象或?/span>DataAdapter对象q行相应的更攏V?/span>

具体来看数据提供源的四种对象

 

Connect 对象

Connect对象用来提供Ҏ据库的连接,Microsoft Visual Studio .Net中微软提供了两种Connect对象Q分别ؓSqlConnection对象Q用来提供对SQL Server 7.0或更高版本的q接Q同时还?/span>OleDbConnection对象Q用来提供对Access与其他第三方数据库的q接?/span>

 

Command 对象

同样Q?/span>Command对象分ؓ两组Q?/span>SqlCommand?/span>OleDbCommand?/span>Command对象被用来执行针Ҏ据库的命令,比如执行数据库的存储q程(Stored Procedure)Q?/span>SQL命oQ或者直接返回一个完整的表?/span>Command对象提供三种Ҏ(Methods)用来执行上述操作?/span>

ExecuteNonQuery用来执行一个不需q回数据的命令,比如表的插入Q更新或者删除操作?/span>

ExecuteScalarq回从一个查询得到的单独的倹{?/span>

ExecuteReader用来q回一个从DataReader来的l果集?/span>

 

DataReader对象

DataReader提供?/span>forward-only, read-only, connected stream的结果集?/span>

q里?/span>forward-only表示数据只能够向前,如果我们讉K了一条数据后惌再次讉Kq条数据必重新开始?/span>

Read-only表示只读Q不能够对结果集q行操作?/span>

Connected stream表示DataReader对象是面向流q接的。所谓的可以把它看作是道Q这Ҏq去东西那边可以得刎ͼ实际?/span>TCP协议是面向q接的流协议?/span>

不同于其他的三种对象Q?/span>DataReader不能够被用户直接创徏Q必M只能?/span>ExecuteReaderq回?/span>

SqlCommand.ExecuteReaderq回SqlDataReader?/span>

同理Q?/span>OleDbCommand.ExecuteReaderq回OleDbDataReader

需要注意的是,DataReader对应用程序提供行U访问(每次只能讉K数据的一行)Q当你需要多行的时候就需要多ơ的讉Kq个对象。这样做的好处就是内存中永远只需要保留一行的数据Q缺点就是每ơ访问都要开?/span>Connect的连接?/span>

 

DataAdapter对象

DataAdapter对象?/span>ADO.NET数据讉K的核心。实际上它是数据集与数据库的中间层?/span>DataAdapter可以使用FillҎ来ؓDataTable或?/span>DataSet填充数据。然后当内存操作完成?/span>DataAdapter可以认之前的操作从而对真正存于数据库上的数据进行修攏V?/span>

DataAdapter包含四种属性用来代表不同的数据库命令:

SelectCommand用来查询数据

InsertCommand用来插入数据

DeleteCommand用来删除数据

UpdateCommand用来更新数据?/span>UpdateҎ被调用后Q数据集中的数据被更改然后拷贝回数据库,紧接着使用InsertCommand, DeleteCommand, UpdateCommand中合适一个来q行数据更新?/span>



Picasso 2007-07-25 16:46 发表评论
]]>
վ֩ģ壺 ػ| | ˺| | | | ƽ| | | | ʡ| | ʼ| | | ȫ| ɽ| п| | ӥ̶| ʡ| ҳ| ƽ| | ȫ| | ԭ| | | | | ֻ| | | ˳| Т| | | | Ů| Դ|