回答
ADO是您实际获取数据的方式。
我想你在这里混合的东西。
数据集基本上是一个内存表示形式的数据,你只需要拖拽,对于较小的结果集就可以了,但对于任何大的数据库都可以避免。
编辑:
也想加入,对于较大的结果集,通过人口的DataReader泛型列表将帮助您尽可能性能也越高。
有关数据集的示例,我不得不重写一个需要9个小时才能运行的报告。这是一个生成CSV的控制台应用程序。无论如何,程序员将140万条记录加载到一个数据集中,然后对每个循环的每一行执行一次。这不仅花费了近10个小时,而且在运行时还能播放4个内存。
删除数据集后,报告现在在5分钟内运行,占用大约20兆内存。
只是一个例子。
ADO.NET DataReader比使用DataSet更快,因为它没有创建大量DataSet运行所需的内部对象的开销。例如,DataTable可以有一个Data的缓存。
但是,在正确的上下文中使用DataSet有一些好处。 如果性能是您的主要目标,那么使用ADO,否则我建议使用Typed DataSets。
当你要求比较ADO与DataSet
(ADO.NET中的一个类)时,你的问题似乎有点奇怪。如果您要求比较ADO与ADO.NET或ADO的对象与ADO.NET的对象DataSet
之间的比较,则会更有意义。我会回答,就像你以这种方式问过。
首先,在这里看到:
这是维基百科文章详细介绍了两种技术之间的主要差异。
ADO.NET的最大的一点是DataSet
可以被认为是一个完整的内存数据库。无可否认,它可能主要用于检索单个查询或表的数据值,但是它可以包含多个表以及这些表之间的一组完整的关系和约束(就像RDBMS本身存在的一样!)。 A DataSet
也是断开的对象。这意味着从RDBMS系统检索数据,填充DataSet
,然后可以关闭数据库连接。完整的DataSet
然后可以在函数,类和组件之间的内存中传递,甚至有一个或多个更新应用于它,同时保持“内存”。然后,整个DataSet
可以很容易地坚持回到原来的数据存储/ RDBMS,有效地,“重新建立一个数据库连接一次”。这允许数据长期存在于内存中,而不必像数据库连接那样“保持开放”和昂贵(以及稀缺)的资源。
比较而言,ADO的RecordSet
大多是单个表格的表示(如只查看数据库中的一个表格,而不是整个数据库本身)。它也是一个“连接”对象,这意味着虽然在内存中有一个填充的RecordSet
,并且您(例如)遍历它的记录,但仍然连接到后端数据库。如果您的程序中的工作需要一些时间,那么您将持续打开该数据库连接(可能)很长一段时间。
如果您正在寻找性能比较的两种技术(ADO VS ADO.NET),你可以在这里找到一个这样的比较之间:
PERFORMANCE COMPARISON OF MICROSOFT'S COM ADO AND ADO.NET DATABASE CONNECTORS
ADO/ADO.Net是获取数据进出数据库的方式。
数据集是一种携带数据的方式。
他们不是mutualy独家
ADO是机构/代码,从数据库中检索数据。几乎所有的数据库发送和检索操作都使用ADO。
DataSets和Datatables是介质(或类),用于在数据库之间传输数据到它在应用程序中消耗的位置。
除非是丢弃应用程序,否则我会避免使用DataSets/DataTables。 Explanation为什么。
- 1. dbExpress vs ADO Connection
- 2. ADO数据类型(adParamInput VS adParamOutput)
- 3. ADO.Net vs ADO Record Locking
- 4. ADO ActualSize vs DefinedSize
- 5. Datatable vs Dataset
- 6. ADO adTinyInt vs adUnsignedTinyInt与SQL Server
- 7. ADO DataSet使用EOF还是IsEmpty?
- 8. ADO连接池连接断开VS
- 9. DAO vs ADO in HTA over wireless
- 10. ADO数据库表布尔列
- 11. 从ADO数据表动态LINQ GROUPBY和选择列,并返回数据表
- 12. 如何访问DataSet中的数据表
- 13. DataSet和DataGridView数据源绑定
- 14. OleDb数据库到DataSet和回到C#?
- 15. 使用ADO数据表副本()恢复原始表数据
- 16. Spark RDD vs DataSet性能
- 17. BDE VS ADO数据库中的错误处理
- 18. DataSet Visualizer中针对具有多个表的数据集的异常 - vs 2008 pro
- 19. 使用using语句处置DataSet和数据表
- 20. 你可以使用DataSet和数据表在便携式类库
- 21. DisplayTables VS数据表
- 22. XML DOM与ADO数据集
- 23. DataSet不保存数据
- 24. DataSet v/s数据库
- 25. 从ListBox到DataSet的数据
- 26. 使用DataSet从ODBC中读取数据
- 27. ADO .NET - 将数据表添加到多个数据集
- 28. Ado实体数据模型添加从不同模式的表
- 29. ADO _ConnectionPtr参数
- 30. 将持久化ADO 2.8 COM记录集转换为ADO.Net DataSet
我认为数据集是历史,现代的做法是使用实体模型。 ADO提供低级别的接口来连接数据库系统。实体模型是很高层次的抽象层次。 – 2009-10-16 14:39:00