ADO和ADO.NET的区别

ADO和ADO.NET的区别:
ADO使用OLE DB接口并基于微软的COM技术
而ADO.NET拥有自己的ADO.NET接口并且基于微软的.NET体系架构。
ADO以Recordset存储,而ADO.NET则以DataSet表示。
Recordset看起来更像单表,如果让Recordset以多表的方式表示就必须在SQL中进行多表连接。
反之,DataSet可以是多个表的集合。ADO 的运作是一种在线方式,这意味着不论是浏览或更新数据都必须是实时的。
ADO.NET则使用离线方式,在访问数据的时候ADO.NET会利用XML制作数据的一份幅本
ADO.NET的数据库连接也只有在这段时间需要在线。
  
由于ADO使用COM技术,这就要求所使用的数据类型必须符合COM规范
而ADO.NET基于XML格式,数据类型更为丰富并且不需要再做COM编排导致的数据类型转换,从而提高了整体性能。
ADO.NET为.NET构架提供了优化的数据访问模型,和基于COM的ADO是完全两样的数据访问方式。

ado.net与ado存在着比较大的差异:
1.ado.net遵循更通用的原则,不那么专门面向数据库。
ado.net集合了所有允许数据处理的类。这些类表示具有典型数据库功能(如索引,排序和视图)的数据容器对象。
尽管ado.net是.net数据库应用程序的权威解决方案
但从总体设计上看,它不像ado数据模型那样以数据库为中心,这是ado.net的一大特点。
2.目前,ado.net提供了两种数据库访问类库:一种用于sql server 7.0 或更高版本
另一种用于其他所有您可能已经安装的ole db提供程序。
在这两种情况下,您分别使用不同的类,但遵循相似的命名规则。
除前缀,名称都是相同的。前一种情况前缀为sql,后一种情况则是oledb。
同时,.net框架还提供了odbc .net的数据访问模式。
odbc .net data provider是 .net 框架的增强组件,它可以访问原始的 odbc 驱动程序
就像 ole db .net data provider 可以访问原始的 ole db providers 一样。
目前它仅在下列驱动程序中测试过:
microsoft sql odbc driver,microsoft odbc driver for oracle,microsoft jet odbc driver。
3.ado.net提供了两个队形来处理从数据源中抽取数据,它们是dataset和datareader对象。
前者是记录在内存中的缓存,您可以从任何方向随意访问和修改。
后者是高度优化的对象,专为以仅向前方式滚动只读记录而设计。
4.ado.net统一了数据容器类编程接口,无论您打算编写何种应用程序,windows窗体,web窗体还是web服务
都可以通过同一组类来处理数据。
不管在后端的数据源数sql server数据库,ole db,xml文件还是一个数组
您都可以通过相同的方法和属性来滚动和处理它们的内容。
5.在ado中,xml只不过是输入和输出格式。
然而在ado.net中,xml是一种数据格式,提供了操作,组织,共享和传递数据的手段。

ADO。NET相对于ADO等主要有什么改进?
1:ado.net不依赖于ole db提供程序,而是使用.net托管提供的程序,
2:不使用com
3:不在支持动态游标和服务器端游
4:,可以断开connection而保留当前数据集可用
5:强类型转换
6:xml支持

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应用程序作了优化。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值