ADO与ADO.NET的区别与介绍

 更新时间:2013年02月19日 11:23:35   作者:  
ADO与ADO.NET简介ADO与ADO.NET既有相似也有区别

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是完全两样的数据访问方式。

相关文章

  • 部署ASP.NET Core程序到Linux系统

    部署ASP.NET Core程序到Linux系统

    这篇文章介绍了部署ASP.NET Core程序到Linux系统的方法,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-03-03
  • ASP.NET中Cookie的使用方法

    ASP.NET中Cookie的使用方法

    Cookie是一段文本信息,在客户端存储 Cookie 是 ASP.NET 的会话状态将请求与会话关联的方法之一。浏览器对 Cookie 的大小有限制,因此,只有不超过 4096 字节才能保证被接受。
    2016-04-04
  • .Net 6简介并和之前版本写法做对比

    .Net 6简介并和之前版本写法做对比

    这篇文章介绍了.Net 6简介并和之前版本写法做对比,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • .Net行为型设计模式之职责链模式(Chain of Responsibility)

    .Net行为型设计模式之职责链模式(Chain of Responsibility)

    这篇文章介绍了.Net行为型设计模式之职责链模式(Chain of Responsibility),文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-05-05
  • 三种方法解决ASP.NET Core 6中的依赖项

    三种方法解决ASP.NET Core 6中的依赖项

    这篇文章主要介绍了解决ASP.NET Core 6依赖项的三种方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2021-11-11
  • ASP.NET创建三层架构图解详细教程

    ASP.NET创建三层架构图解详细教程

    本文以图片的形式完整演示了创建三层架构的完整步骤,简单实用,希望能给大家一些帮助。
    2016-04-04
  • ASP.NET中CheckBoxList复选框列表控件详细使用方法

    ASP.NET中CheckBoxList复选框列表控件详细使用方法

    本文主要介绍CheckBoxList几种常见的用法,并做出范例演示供大家参考,希望对学习asp.net的朋友有所帮助。
    2016-04-04
  • Blazor框架简介

    Blazor框架简介

    Blazor是微软推出的基于.net平台以及http://ASP.net core技术的 交互式客户Web UI框架。这篇文章为大家简单介绍了Blazor框架,需要的朋友们下面随着小编来一起学习学习吧
    2022-01-01
  • 常用C#关键字详解教程(比较全面)

    常用C#关键字详解教程(比较全面)

    学习C#很久了,但可能你也和我一样,总有那么一两个关键词,说不清楚它是什么意思,有什么用,那么这篇文章就带你一一讲解。
    2016-04-04
  • C#列出局域网中可用SQL Server服务器(续)

    C#列出局域网中可用SQL Server服务器(续)

    上一篇文章展示了使用COM对象如何列出局域网中的 SQL Server服务器信息,后来还发现在.Net中有现成的类可用,而不需要使用不太熟悉的COM对象了,这样岂不是更好?下面我把代码展示给大家:
    2008-04-04

最新评论