当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > ADO.NET的DataSet和ADO的Recordset的比较

ASP.NET
使用C# 开发掩码输入文本框
点击DataGrid的列标头在DataGrid最后一行显示该列的和
ASP.NET之Web打印-终极解决篇
SQL Server 2000 Reporting Services: 怎样根据用户的语言偏好显示本地化的信息
利用底层键盘钩子拦载任意按键(回调版)
如何禁止调整自定义控件的尺寸?
用VB6.0编写磁盘格式化程序
Aspx中导Excel
ASP.NET组件设计Step by Step(3)
下面真正开始讲事件的内容
如何有效的使用C#读取文件
如何在C#中加载自己编写的动态链接库(DLL)
Managed DirectX 相关(DirectX.Capture Class Library && DirectShow.NET)
XQuery Reference-from w3schools.com
[译]Visual Basic 2005在语言上的增强(十三)显式的数组范围及小结
lucene的首次应用
[VBA]在后台删除工作表后出现的怪问题
VB.NET 数据库查询 [SQL字符串的生成]
JavaScript调用服务器事件
在Window2003上执行System.Diagnostics.Process.GetProcessesByName等方法失败的原因

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 49 ::
收藏到网摘: n/a

导 读:在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应该是比较有效的。