ADO.NET (二)—— ADO和ADO .NET对照

   
  我们知道ADO.NET的两大核心组件各自是Data Provider和DataSet。假设说

DataSet是ADO.NET的心脏。那么Data Provider绝对是ADO.NET的左臂右膀。

Data Provider提供了訪问外部数据数据源的可能性。并且外部的数据源是多样的。


文将具体说明.NET数据提供程序的作用以及怎样訪问不同的数据源。
     
   详情细看《ADO.NET技术》

watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">

           

对ADO和ADO.NET的具体比較:

1、可伸缩性:

a)   ADO:由于在ADO中,默认情况下是使用连接的Recordset对象、数据库锁定

和活动数据库连接,以长时间地争夺有限的数据库资源。

b)   ADO.NET:对数据库数据进行断开连接的訪问。无需进行长时间地维护数据库锁定

或者有效数据库连接,没有对有限的数据库资源的争夺。



2、 可编程性:

a)   ADO:全部Recordset字段数据类型都是COM Variant数据类型,并通常和数据

库表中的字段名相相应。

b)   ADO.NET:使用XML的强类型化的编程特征。数据是自我描写叙述的,由于代码项

名相应于代码所处理的真实问题。DataSet和DataReader对象中的数据是强类型化的,使

代码更easy阅读和编写;



3、断接訪问

a)  ADO:由Recordset提供,但必须显式编码。对于Recordset对象,在默认情况

下是通过调用OLE DB提供程序来和数据库通信;

b)  ADO.NET:对DataAdapter对象使用标准化的调用,来和数据库通信。该对象可

以和OLE DB数据提供程序或直接与SQL
Sever数据提供程序通信;

 

4、表之间的关系:

a)   ADO:须要对单个结果表中的多个数据库表使用JOIN查询来组装数据,并提供

层次结构记录集,只是它们非常难使用;

b)   ADO.NET:支持DataRelation对象。将一个DataTable对象中的行和还有一

个DataTable对象中的行关联起来。

 

5、驻留留内存数据表达方式:

1)   ADO:使用Recordset对象保存单行数据,非常像数据库表;

2)   ADO.NET:使用DataSet对象,该对象能够包括由DataTable对象表示的一个或多个表;

6、   数据导航:

a)  ADO:使用.MoveNext方法顺序遍历Recordset中的行;

b)  ADO.NET:DataSet使用导航范例对一个表中的行进行无序訪问。

对该数据的

訪问类似于訪问集合或数组中的数据。这对于DataTable的Rows集合来说是可能的。它允

许通过索引来訪问行。依照关系从一个表中的行导航到还有一个表中的对应行;





7.   通过防火墙发送数据:

a)   ADO:这对于ADO来说。比較成问题,由于防火墙通经常使用于防止系统级请

求。如COM编组;

b)   ADO.NET:ADO.NET支持这一功能,由于ADO.NET的DataSet对象使

用XML,XML能够通过防火墙。



8、 共享各层间或组件间的断开连接数据:

a)   ADO:使用COM编组以发送断开连接的数据集,它仅仅支持由COM标准定义的

数据类型。

须要进行类型转换,这要求使用系统资源;

b)   ADO.NET:以XML格式发送DataSet。XML格式对数据类型没有限制,不须要类
型转换;





小结:

进行对照之后,自己的思路更加的清晰明了。可是很多其它的还是要到实践中去掌握和了解。

ADO.NET (二)—— ADO和ADO .NET对照的更多相关文章

  1. GitHub开源:升讯威ADO.NET增强组件 sheng.ADO.NET.Plus V1.3

    GitHub: https://github.com/iccb1013/sheng.ADO.NET.Plus 早前分享过,当时没有把代码上传到Github,只是通过邮件的形式分享给了部分需要的朋友,最 ...

  2. 我与ADO.NET二三事(2)

    继上篇开始,这里主要再次精简.因为大家已经熟悉了主要思想以及它的工作方式.那么这里提供的案例改动会很大.上篇的DatabaseCommand***均是为了大家能够轻松的理解所临时编写的.这次提供的接口 ...

  3. 我与ADO.NET二三事

      天气渐冷,闲来无事就把业余时间自己使用的数据访问库凉一凉.这个库本人自己使用了2年多,主要用于个人学习时需要操作数据库时使用,非组织和商业性质的使用.记得上学的时候,在网络上看到SqlServer ...

  4. ADO.NET 二(Connection)

    C# 语言中 Connection 类是 ADO.NET 组件连接数据库时第一个要使用的类,也是通过编程访问数据库的第一步. 接下来了解一下 Connection 类中的常用属性和方法,以及如何连接 ...

  5. ADO.NET(二)

     对Command的拓展延伸 执行SQL语句. Command 对象需要取得将要执行的SQL语句,通过调用该类的多种方法,向数据库提交SQL语句. ExecuteNonQuery(),ExecuteR ...

  6. 使用C#进行数据库增删改查ADO.NET(二)

    这节接着讲用C#进行数据库CRUD,高级部分.  事务: 事务是执行一批sql语句,如果中途失败,全部回滚,数据不会受影响,中途没有出错则会提交事务,真正对数据进行修改.C#提供了SqlTransac ...

  7. ADO.NET基础01(ADO.NET组成,数据库的方式,SqlCommand,SqlDataReader)

    什么是ADO.NET: ADO.NET就是一组类库,这组类库可以让我们通过程序的方式访问数据库,就像System.IO下的类操作文件一样, System.Data.这组类是用来操作数据库(不光是MSS ...

  8. 菜鸟学习Ado.net笔记一:Ado.net学习之SqlHelper类

    using System; using System.Collections.Generic; using System.Text; using System.Data.SqlClient; usin ...

  9. Delphi 原生ADO(二)

    我发现很多朋友在开发数据库时都使用 Delphi 自带的 ADO 组 件 或 Diamond ADO,其实在 Delphi 中使用原生 ADO 接口也是十分方便和有效的.我使用原生 ADO 开发项目已 ...

随机推荐

  1. Eclipse中高效的快捷键、调试及Junit

    Eclipse中高效的快捷键 当我知道了这些快捷键的用法之后,感觉真的非常兴奋,没想到Eclipse中还有这么多令人惊喜的功能,真的能够提高效率. 内容提示 Alt+/ 用于输入标准库或者keywor ...

  2. 使用SecueCRT在本地主机与远程主机之间交互文件

    名词解释 本地主机:执行SecueCRT,以管理远程Linux或Unix的机器(一般为Windows系统) 远程主机:被SecueCRT进行管理控制的机器(一般为Linux或Unix) 1.开启SFT ...

  3. java 抽象类和接口的差别

     语法层面上: 1)抽象类能够提供成员方法的实现细节.而接口中仅仅能存在public abstract 方法. 2)抽象类中的成员变量能够是各种类型的.而接口中的成员变量仅仅能是public st ...

  4. Unity3D中C#和JS的方法互相調用

    因为Unity3D中一些腳本的方法仅仅能用在JS中.在C#中是無效的,而C#能够與服務器端通訊,JS本身卻不行.所以勢必會遇到這兩種語言腳本中方法的互相調用,下面是演示样例. 兩個文件 test1.j ...

  5. 安装ftp碰到的问题及解决方法

    1   CRT显示乱码:     本地windows机器.改动SecureCRT的设置.找到"选项"->"会话选项"->"外观" ...

  6. cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第一步---開始界面&关卡选择

    /* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦.他说:随便写,第一别全然照搬代码:第二能够说 ...

  7. MAME 0.201 发布,重温童年的街机模拟器

    MAME 0.201 已发布,MAME 最初是街机模拟器,随着时间的推移,MAME 吸收了姊妹项目 MESS(多机种模拟器超级系统),所以 MAME 现在还记录了各种各样的(大多是老式的)电脑游戏.掌 ...

  8. Swift - 判断是否有某功能访问权限,没有则提示,并自动跳转到设置页

    由于 iOS 系统的安全限制,App 如果需要访问设备的通讯录.麦克风. 相册. 相机.地理位置等时,需要请求用户是否允许访问.   有时用户不小心点了“不允许”,后面可能就不知道要去哪里再开启这个权 ...

  9. ROS-OPENCV

    前言:opencv是一个开源的跨平台计算机视觉库. 前提:1.已下载并编译了相关功能包集,如还未下载,可通过git下载:https://github.com/huchunxu/ros_explorin ...

  10. php链接memcache操作

    设置值 set key 压缩标识 有效期 长度 set name 0 60 5 hello 压缩标识:用于告诉memcached服务器是否压所后存储数据,目的是为了节省磁盘空间,压所和解压缩会消耗时间 ...