回答
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