ADO.NET——DataSet

 ADO.NET

    ADO.NET组件式开发数据库应用程序的核心,它提供了连接数据存储器,并检索、操作那个和更新数据所必需的类。ADO.NET中有许多组件,它们都在System.Data命名空间中实现。

    

    ADO是ActiveX  Data Objects的缩写,他是ADO.NET的前身。.NETFramework是Microsoft的主要数据访问技术。ADO.NET的一个设计目标就是尽可能与ADO紧密相关,这样开发人员就可以利用已有的ADO知识,迅速掌握ADO.NET。


下面是对ADO.NET的一个总结。

 

DataSet

    DataSet是为了方便数据处理开发出来的,是数据的集合,为了解决DataReader的缺陷设计的,DataReader数据处理速度快,但它是只读的,一旦移到下一行,就不能看上一行的数据,DataSet可以自由移动指针。DataSet是独立的数据集合,即时断开数据连接或者关闭数据库,依然可用。

    

    DataSet类是ADO.NET中一个非常重要的核心成员,它是数据库中的数据在本地计算机中映射成的缓存。对DataSet的任何操作,都是在计算机缓存中完成的。对于任何数据源,它都提供一致的关系编程模型。在DataSet中既定义了数据表的约束关系以及数据表之间的关系,还可以对数据表中的数据进行排序等。

 

DataSet特点

    1、独立性.DataSet独立于各种数据源..NET中,无论什么类型数据源,它都会提供一致的关系编程模型,而这就是DataSet

    2、离线和连接。DataSet既可以以离线方式,也可以以实事连接来操作数据库中的数据。这一点有点像ADO中的RecordSet

    3DataSet对象是一个可以用XML形式表示的数据视图,是一种数据关系视图。DataSet对象和XML文档几乎是可互换的

 

使用方法

    1、把数据库中的数据通过DataAdapter对象填充DataSet

    2、通过DataAdapter对象操作DataSet实现更新数据库

    3、把XML数据流或文本加载到DataSet

 

DataSetRecordSet区别

    RecordSet可以离线操作数据库,性能优良,效率较高等。DataSetRecordSet复杂的多,每一个DataSet是一个或多个DataTable对象的集合,这些对象由数据行和数据列以及主键、外键、约束和有关DataTable对象中数据关系信息组成。而RecordSet只能存放单张数据表,虽然这张数据表可以由几张数据表JOIN生成。所以有些时候说,RecordSet更类似于DataSet中的DataTable

 

DataSetDataReader区别

1、与数据库连接

     DataSet连接数据库时是非面向连接的。把表全部读到Sql中的缓冲池,并断开于数据库的连接;DataReader连接数据库时是面向连接的。读表时,只能向前读取,读完数据后有用户决定是否断开连接。

2、处理数据速度

     DataSet读取、处理速度较慢;DataReader读取、处理速度较快。

3、更新数据库

    在对DataSet数据集中的数据进行更新后,可以把数据更新回原来的数据库;在对DataReader中的数据进行更新后,没有办法进行数据库更新。

4、支持分页排序

    DataSet中支持分页、动态排序等操作;在DataReader中没有分页、动态排序的功能。

5、占用内存

    DataSetIIS服务器上所使用的内存较多;DataReader使用内存较少。


ADO组件的使用需要利用支持COM的高级语言,例如ASP中的VBScript或者Visual Basic,甚至Delphi,微软的竞争对手Borland的一个产品,现在也支持使用ADO来访问数据库。   在新的编程框架.NET Framework中, 微软也提供了一个面向Internet的版本的ADO,称为ADO.NET。其对象模型和传统ADO差别很大。 ADO是一种面向对象的编程接口,微软介绍说,与其同IBM和Oracle提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。为实现这一目标,微软在数据库和微软的OLE DB中提供了一种“桥”程序,这种程序能够提供对数据库的连接。 开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。ADO的一项属性远程数据服务,支持“数据仓库”ActiveX 组件以及高效的客户端缓存。作为ActiveX的一部分,ADO也是COM组件的一部分。ADO是由早期的微软数据接口??远程数据对象RDO演化而来的。RDO同微软的ODBC一同连接关系数据库,不过不能连接非关系数据库。   ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC。   ADO向VB程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K略小,大约是DAO3.5的Dao350.dll所占内存的60%)。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个"Connection"对象,但是可以有多个,独立的"Recordset"对象来使用它。ADO针对客户/服务器以及WEB应用程序作了优化。
评论 15
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值