1. ADO与ADO.NET简介
ADO与ADO.NET既有相似也有区别,他们都能够编写对数据库服务器中的数据进行访问和操作的应用程序,并且易于使用、高速度、低内存支出和占用磁盘空间较少,支持用于建立基于客户端/服务器和 Web 的应用程序的主要功能。但是ADO使用OLE DB接口并基于微软的COM技术,而ADO.NET拥有自己的ADO.NET接口并且基于微软的.NET体系架构。众所周知.NET体系不同于COM体系,ADO.NET接口也就完全不同于ADO和OLE DB接口,这也就是说ADO.NET和ADO是两种数据访问方式。
2. 数据访问方式的历史
下面简单的回顾一下微软的数据访问方式所走过的几个阶段。
ODBC – (Open Database Connectivity)是第一个使用SQL访问不同关系数据库的数据访问技术。使用ODBC应用程序能够通过单一的命令操纵不同的数据库,而开发人员需要做的仅仅只是针对不同的应用加入相应的ODBC驱动。 
DAO - (Data Access Objects)不像ODBC那样是面向C/C++程序员的,它是微软提供给Visual Basic开发人员的一种简单的数据访问方法,用于操纵Access数据库。
RDO – 在使用DAO访问不同的关系型数据库的时候,Jet引擎不得不在DAO和ODBC之间进行命令的转化,导致了性能的下降,而RDO(Remote Data Objects)的出现就顺理成章了。
OLE DB – 随着越来越多的数据以非关系型格式存储,需要一种新的架构来提供这种应用和数据源之间的无缝连接,基于COM(Component Object Model)的OLE DB应运而生了。
ADO – 基于OLE DB之上的ADO更简单、更高级、更适合Visual Basic程序员,同时消除了OLE DB的多种弊端,取而代之是微软技术发展的趋势。

ADO架构图表
3. ADO与ADO.NET对照
在开始设计.NET体系架构时,微软就决定重新设计数据访问模型,以便能够完全的基于XML和离线计算模型。两者的区别主要有:
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体系

ADO.NET架构图表
4. 小结
ADO.NET为.NET构架提供了优化的数据访问模型,和基于COM的ADO是完全两样的数据访问方式。

转载于:https://www.cnblogs.com/liangxiaofeng/p/5581843.html

ADO与ADO.NET的区别与介绍相关推荐

  1. ADO,OLEDB,ODBC,DAO的区别

    ADO NET OLEDB ODBC连接数据库的区别 http://www.doc88.com/p-976312043296.html http://blog.csdn.net/ithomer/art ...

  2. 数据库的ODBC连接,ADO和BDE有什么区别和联系?

    数据库的ODBC连接,ADO和BDE有什么区别和联系? 悬赏分:0 - 解决时间:2006-11-24 11:26 . 提问者: zwl232 - 助理 二级 最佳答案 ADO与BDE区别比较大的 A ...

  3. ADO和ADO.NET的区别

    ADO.NET是ADO的后继版本,主要目的是在.NET Framework中更容易地创建分布式. 数据共享的应用程序,它提供了一个数据访问接口,以便和OLE DB数据源进行通信,如 SQL SERVE ...

  4. ADO, OLEDB, ODBC, DAO的区别

    ADO, OLEDB, ODBC, DAO的区别 ADO, OLEDB, ODBC, DAO的区别 ODBC(Open Database Connectivity,开放数据库互连) DAO(Data ...

  5. ODBC、OLEDB、ADO、ADO.NET之间的关系

    相信看到这篇文章的人,心中肯定有这样的想法:ODBC.OLEDB.ADO.ADO.NET貌似都是访问数据库的东东,那么他们之间有什么区别,又有什么联系呢?不要着急,待我慢慢道来. 先说ODBC,官方的 ...

  6. 一文详解ODBC、OLEDB、ADO、ADO.NET之间的关系

    相信看到这篇文章的人,心中肯定有这样的想法:ODBC.OLEDB.ADO.ADO.NET貌似都是访问数据库的东东,那么他们之间有什么区别,又有什么联系呢?不要着急,待我慢慢道来. 一.ODBC ODB ...

  7. 使用ADO或ADO控件访问数据库

    目录: 1.数据库的基础知识以及创建Access数据库 2.数据库的接口 3.使用ADO或ADO控件访问数据库 上篇文章,为大家讲解了数据库的接口,大家对ADO也有了较为基础的了解,这篇文章主要解决大 ...

  8. ADO 与ADO.NET

    原文出自:http://www.microsoft.com/china/community/program/originalarticles/techdoc/ADONET.mspx ADO 与ADO. ...

  9. b360装服务器系统,B365主板能不能安装Win7系统 B365和B360主板区别对比介绍

    前不久,Intel低调放出了B365芯片组主板,预计将于2月底发布.从名称来看,B365主板似乎是B360的升级版,网传其可能原生支持Win7系统,受到不少电脑爱好者朋友关注.那么B365主板能不能安 ...

最新文章

  1. Python作为目前的大势,有哪些优势?
  2. 凭着这把AutoML利剑,这家AI公司荣登 IEEE ISI“铁王座”
  3. 电商泛滥的时代,我们的出路在哪里?
  4. 虚拟机使用的是此版本 VMware Workstation 不支持的硬件版本。 模块“Upgrade”启动失败。 未能启动虚拟机(修改.vmx文件virtualHW.version = “xx“字段)
  5. hdu 5312 数学
  6. 配置文件keepalived.conf详解
  7. market1501 data_manager.py
  8. c语言第五章137页题目及答案,(完整版)C语言程序设计教程第五章练习题题目
  9. java test使用手册,啄木鸟(woodpecker)自动化测试工具使用手册
  10. 【java】@Transactional注解与事务
  11. C# 控制台如何播放音频文件
  12. KITTI数据集解析和可视化
  13. httpclient.execute长时间停滞问题
  14. Learn Git Branching 学习笔记(基础篇)
  15. opencv各个lib库的作用
  16. oCPC实践录 | 广告冷启动问题的思考与总结
  17. 插件GsonFormat快速实现JavaBean
  18. Spring AOP(切面面向接口)
  19. linux smit工具,AIX smit工具
  20. DataX oracle同步mysql(全量和增量)

热门文章

  1. linux部分基础命令总结,Linux 基础命令总结3
  2. linux 内核调试信息在哪里,Linux kernel debug技巧----开启DEBUG选项
  3. python获取mac、计算机id_python 获取本机IP、mac地址、计算机名的简单示例
  4. 推理计算过程_转导推理—Transductive Learning
  5. android 创建隐藏文件夹吗,Android创建隐藏文件可能文件夹
  6. VS2015 win64下配置Opencv3.4.7
  7. java me sdk_Java ME SDK 3.0不运行的问题及解决
  8. hbase 数据插入指定rowkey_「HBase大爆炸」HBase之常用Shell命令
  9. memset()函数用法及其作用
  10. OpenCV Mat矩阵(图像Mat)初始化及访问方法