Command不是也可以对数据库进行insert,update,delete操作吗,为什么还需要DataAdapter。我知道DataAdapter可以用来想AataSet中填充数据,Command不可以吗?

 这正是ADO.NET的设计的独道之处:

 

 的作用是填充DataSet,而使用Command是不能填充DataSet的,这也正是ADONetADO的区别。


DataAdapter

 

ADO.Net的设计思想就是把数据库 构造到内存中。这样数据库就可以非连接了,应用程序可以从内存中读取数据库。而.Net是基于MXL技术的,在数据库在内存中被统一存放成XML格式,这样不同的数据源,映射到内存中的数据就是兼容的,统一的,易于交互的。所以ADO.Net又是数据源无关的。

 

在接着说DataAdapter,它的价值就是为DataSet服务,Adapter的意思就是适配器,例如,复读机上有个电源适配器,作用是把电压处理成复读机可以使用的电压。猫 Modem,作用就是把电话信号处理成计算机可以识别的信号,把计算机信号,转换成电话信号(模拟信号吧,哈哈)。DataAdatper就类似与此,它是一个桥梁,负责连接DataSet和数据库的交互。

 

简单的说,ADO.Net就像用盆子接水洗衣服,而ADO是用水龙头的水直接洗衣服,衣服洗不完,水龙头就要一直开着。而ADO.Net如同把水接到盆子里,关掉水龙头(数据源)。

 

 

 

 

下面是ADOADO.NET的一些比较:

 

ADOADO.NET

  ADOADO.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且易于使用、高速度、低内存支出和占用磁盘空间较少,支持用于建立基于客户端/服务器和 Web 的应用程序的主要功能。但是ADO使用OLE DB接口并基于微软的COM技术,而ADO.NET拥有自己的ADO.NET接口并且基于微软的.NET体系架构。众所周知.NET体系不同于COM体系,ADO.NET接口也就完全不同于ADOOLE DB接口,这也就是说ADO.NETADO是两种数据访问方式。

  

数据访问方式的历史

  下面简单的回顾一下微软的数据访问方式所走过的几个阶段。

  

  ODBC  Open Database Connectivity)是第一个使用SQL访问不同关系数据库的数据访问技术。使用ODBC应用程序能够通过单一的命令操纵不同的数据库,而开发人员需要做的仅仅只是针对不同的应用加入相应的ODBC驱动。

  

  DAO - Data Access Objects)不像ODBC那样是面向C/C++程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,用于操纵Access数据库。

  

  RDO  在使用DAO访问不同的关系型数据库的时候,Jet引擎不得不在DAOODBC之间进行命令的转化,导致了性能的下降,而RDORemote Data Objects)的出现就顺理成章了。

  

  OLE DB  随着越来越多的数据以非关系型格式存储,需要一种新的架构来提供这种应用和数据源之间的无缝连接,基于COMComponent Object Model)的OLE DB应运而生了。

  

  ADO  基于OLE DB之上的ADO更简单、更高级、更适合Visual Basic程序员,同时消除了OLE DB的多种弊端,取而代之是微软技术发展的趋势。



ADO
ADO.NET对照

  在开始设计.NET体系架构时,微软就决定重新设计数据访问模型,以便能够完全的基于XML和离线计算模型。两者的区别主要有:
  

  ADORecordset存储,而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构架提供了优化的数据访问模型,和基于COMADO是完全两样的数据访问方式。



ado.net
ado存在着比较大的差异:

  1ado.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 drivermicrosoft odbc driver for oraclemicrosoft jet odbc driver

  3ado.net提供了两个队形来处理从数据源中抽取数据,它们是datasetdatareader对象。前者是记录在内存中的缓存,您可以从任何方向随意访问和修改。后者是高度优化的对象,专为以仅向前方式滚动只读记录而设计。

  4ado.net统一了数据容器类编程接口,无论您打算编写何种应用程序,windows窗体,web窗体还是web服务,都可以通过同一组类来处理数据。不管在后端的数据源数sql server数据库,ole dbxml文件还是一个数组,您都可以通过相同的方法和属性来滚动和处理它们的内容。

  5.在ado中,xml只不过是输入和输出格式。然而在ado.net中,xml是一种数据格式,提供了操作,组织,共享和传递数据的手段。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值