ADO.NET提供以下兩個對象,用於檢索關係數據並將其存儲在內存中:DataSet和DataReader。DataSet提供一個內存中數據的關係表示形式,一整套包括一些表在內的數據(這些表包含數據、對數據進行排序並約束數據),以及表之間的關係。DataReader提供一個來自數據庫的快速、僅向前、只讀數據流。
當使用DataSet時,經常會利用DataAdapter(也可能是CommandBuilder)與數據源進行交互。當使用DataSet時,也可以利用DataView對DataSet中的數據應用排序和篩選。也可以從DataSet繼承,創建強類型DataSet,用於將表、行和列作爲強類型對象屬性公開。
當設計應用程序時,要考慮應用程序所需功能的等級,以確定使用DataSet或者是DataReader。
要通過應用程序執行以下操作,就要使用DataSet:
r 在結果的多個離散表之間進行導航。
r 操作來自多個數據源(例如,來自多個數據庫、一個XML文件和一個電子表格的混合數據)的數據。
r 在各層之間交換數據或使用XML Web服務。與DataReader不同的是,DataSet能傳遞給遠程客戶端。
r 重用同樣的記錄集合,以便通過緩存獲得性能改善(例如排序、搜索或篩選數據)。
r 每條記錄都需要執行大量處理。對使用DataReader返回的每一行進行擴展處理會延長服務於DataReader的連接的必要時間,這影響了性能。
r 使用XML操作對數據進行操作,例如可擴展樣式表語言轉換(XSLT轉換)或XPath查詢。
對於下列情況,要在應用程序中使用DataReader:
r 不需要緩存數據。
r 要處理的結果集太大,內存中放不下。
r 一旦需要以僅向前、只讀方式快速訪問數據。
注填充DataSet時,DataAdapter使用DataReader。因此,使用DataAdapter取代DataSet提升的性能表現爲節省了DataSet佔用內存和填充DataSet需要的循環。一般來說,此性能提升只是象徵性的,因此,設計決策應以所需功能爲基礎。
dataset datareader區別
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
ASP.NET 4當中Url Routing的支援
dotnetwalker
2018-08-27 19:47:48
Jquery ajax 返回string類型加result.d原因
kamboo
2018-08-27 19:43:36
【疑難】iis重裝後不能運行asp.net
inetfuture
2018-08-27 19:31:13
關於ASP.NET中的Forms身份驗證詳解
俩定
2018-08-27 19:19:27
記一次ASP.NET無法連接數據庫問題的解決方法(ORA-01017)
俩定
2018-08-27 19:19:16
謹慎使用TakeWhile來篩選數據
俩定
2018-08-27 19:19:16
ASP.NET Session State FAQ
俩定
2018-08-27 19:19:12
uploadify3.2.1版插件在ASP.NET中的使用
scioo
2018-08-27 19:12:28
ASP.NET 網站管理—數據存儲問題
scioo
2018-08-27 19:12:28
氣死人的 uploadify3.2.1 插件
scioo
2018-08-27 19:12:28
IPrincipal 和 IIdentity 接口
stoneoil
2018-08-27 19:05:54
如何實現 IPrincipal
stoneoil
2018-08-27 19:05:21
ASP.NET有關目錄操作的常識
stoneoil
2018-08-27 19:05:19
分佈式應用程序的身份驗證和授權方法
stoneoil
2018-08-27 19:05:19