首页 > 编程 > .NET > 正文

ADO.NET的DataSet和ADO的Recordset的比较

2024-07-10 13:03:36
字体:
来源:转载
供稿:网友
  • 本文来源于网页设计爱好者web开发社区http://www.html.org.cn收集整理,欢迎访问。
  • 导 读:在ado中我们最常使用的对象就recordset了,而在ado.net中又增加了一个对象dataset。本文简要的对比了dateset和recordset的异同,这对ado.net的初学者非常有帮助!
    --------------------------------------------------------------------------------
    翻译整理:.net技术网(www.51dotnet.com)郜飞
    原文出处:http://www.database-applications.net/articles/dotnet4.html

    recordset是一个连接或断开的(通过使用游标)的记录集合,它被定义成数据表。dataset是一个断开的记录集合,它可以作为在内存中使用的数据集。

    recordset和数据的提供者有关:有些数据提供者不支持一些recordset的方法和特性。相反,dataset的不同方法例如查询、排序、筛选和更新等等,都是独立于数据提供者的。

    当新版本的ado允许recordset被保存或转换到xml以至于数据能被传递到应用程序里和越过防火墙,dataset则不需要转换就能完成相同的任务,因为dataset在xml中被声明过。

    recordset是非类型的,意思是它把每个数据作为variant变量来存储。然而,dataset是强类型的,它把数据按照原来的类型存储。强类型意味着更规范的编程方式和减少错误。

    通过ado的recordset来更新数据库是繁琐的、低效率的和低成功率的。举个例子,如果有五十个记录要被更新,还有一个记录不能被更新,数据库将拒绝整个recordset。这个问题在dataset中就不存在,因为dataset能通过它的rowerror特性来一行一行的捕捉错误。除了数据,dataset也能被增加或修改其关系、列、表和类似对象,而且不需要多重的数据库连接。

    最后,在recordset中,通常用循环的办法来取出数据。在dataset中,数据视图被创建并绑定到服务器控件上,因此,可以不需要混合表示和数据存取代码就能表示数据。这是很简洁的编程方式。

    总之,dataset和recordset是完全不相同的。dataset可以理解为是一种升级的recordset。在没有对ado.net的dataset和ado的recordset进行性能上的测试和比较时,综上所述,dataset应该是比较有效的。
    发表评论 共有条评论
    用户名: 密码:
    验证码: 匿名发表