ADO与ADO.NET

ADO从大的概念来说就是Access Data Object的简称,主要用来应用程序 数据库之间的交互。 在以前没有出现.NET平台的时候,Coder就只能使用 ADO,它们常见于VB、C++等面向对象的IDE中,它的核心对象只有一个,那就是RecordSet,在当时看来,这个对象很神奇。 在出现.Net平台后,Coder就开始慢慢接触到微软支持的 ADO.Net,它在.Net IDE中使用,作用和当初的 ADO差不多,但是,实际上,这两种 数据库交互的模型在操作的过程中存在一定的差异性,这个也是 ADO.NetADO更能较好的完成 数据库的交互操作的原因。 废话不要说这么多拉,它们的不同点主要有以下几个方面:
(1)核心对象的不同: ADO中核心对象只有RecordSet一个,做什么事务都是通过它的属性(CursorType、LockType 、CursorLocation等)的设置搭配来完成,这样的RecorderSet一经设置好,它的运行模式就固定下来了,比较死板; ADO.Net中 的核心对象有DataSet、DataReader、DataAdapt三个,简单说来,DataSet是存在内存中的数据集,DataReader是前 向的只读数据集,DateAdapt负责DataSet和物理数据库的交互,它的多对象表明它的不同事务可以分别由对应的对象来负责完成,比较灵活。
(2) 数据库的连接性不同: ADO中,如果不想一直占用和锁定服务器上的数据资源,则它可以通过客户端的指针来解决;而 ADO.Net中的DataSet对象则对这样的需求有了更好的支持,它能够 XML很好的兼容,它可以从多方面取得表数据(不同的物理数据库、不同的从标准XML文档导入的表数据)并且建立它们之间的关联,这样它就把感兴趣的数据存放到内存中,而并不是直接占用数据库资源。
(3)是否支持单个值的获得:我们有时候往往只需要从数据库中获得某个计算的结果,例如**月的盈余等,要达到这样的功能, ADO中也只能够通过建立RecordSet对象,然后再从results中取出来的方式实现,而在 ADO.Net中,有一个 Command 对象的 ExecuteScalar 方法可以支持直接获得单个值的功能。
(4)操作数据库的盲目性:在 ADO中,我们可以设置RecordSet的属性来规定用户是否具备修改数据库的权限,如果具有,则用户的添加修改删除操作将会实时的提交到数据库中,而这种提交是隐式的,用户无法干预,所以,这样的操作数据库也可以说是盲目的;在 ADO.Net中,有一个DataAdapt对象,它负责把用户对数据库的操作提交到数据库中,这种提交是显式的,用户可以干预,避免了盲目性,当然,DataAdapt也提供类似于盲目操作的功能,但是这种功能在时效上会比 ADO的来得慢。
(5)支持的数据类型: ADO中所有的数据的类型只有一个,那就是 Variant; 而在 ADO.Net中,由于它支持多种数据类型,所以可以说,数据类型忠于原始数据类型,比如在 System.Data.SqlTypes 中就有所有的SQL Server所有的数据类型的对应类型,在数据集中的数据类型就是它们。
总而言之,这样看来, ADO.NetADO更能很好的完成 数据库交互的使命。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值