dataset 和 datareader對象有什麼區別?

導讀:
  dataset 和 datareader對象有什麼區別?
  DataSet可以離線處理,前後滾動.DataReader不能離線處理,且是隻讀的向前的,不過速度明顯會很快 DataSet可以存儲數據庫各種對象的,比如表觸發器等,而DataReader只能存儲遊標記錄
  DataSet可以更新回原來的數據庫,DataReader不行;
  DataSet可以FORWORD PREVIUS,而DataReader只能FW;
  DataReader類似一個只能向前的遊標記錄集
  DataSet叫數據集!是ADO.net相對與ADO實現斷開式數據庫連接性的主要體現!DateReader是一個客戶端的只向前遊標,兩者的應用領域不同!讀取數據後!如果要進行比較頻繁的改動,可以使用DataSet,並且DataSet也支持串行化,可與xslt結合!進行web開發!
  DataReader則偏向於快速讀取數據!針對數據量比較大的數據可能應用的更加頻繁點! <[三]>ADO.NET提供以下兩個對象,用於檢索關係數據並將其存儲在內存中:DataSet和DataReader。DataSet提供一個內存中數據的關係表示形式,一整套包括一些表在內的數據(這些表包含數據、對數據進行排序並約束數據),以及表之間的關係。DataReader提供一個來自數據庫的快速、僅向前、只讀數據流。
  當使用DataSet時,經常會利用DataAdapter(也可能是CommandBuilder)與數據源進行交互。當使用DataSet時,也可以利用DataView對DataSet中的數據應用排序和篩選。也可以從DataSet繼承,創建強類型DataSet,用於將表、行和列作爲強類型對象屬性公開。
  下列主題包括的信息涉及:使用DataSet或DataReader的最佳時機、如何優化訪問它們所包含數據、以及如何優化使用DataAdapter(包括CommandBuilder)和DataView的技巧。
  
  DataSet與DataReader
  當設計應用程序時,要考慮應用程序所需功能的等級,以確定使用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需要的循環。一般來說,此性能提升只是象徵性的,因此,設計決策應以所需功能爲基礎。<[四]>
  經常聽到有人問這個問題:“在ASP.NET Web應用程序中我應該用DataReader類還是DataSet類呢?”在很多文章以及新聞組的貼子中我經常看到這樣的誤解,即認爲DataReader(SqlDataReader或OleDbDataReader的縮寫)比DataSet好。有時候我也會看到相反的說法。事實上,Microsoft創建了這兩個數據存取類是因爲它們都是我們所需要的。每個類都有其優點和不足,你可以根據應用環境來選擇用哪一個。
  本文就兩者的選擇問題做了很清楚的講述,可以讓你在運用ASP.NET時,在選擇DataReader類或DataSet類的方面得到一些指南。在基於客戶端的Windows Form應用程序環境下,這些規則可能會改變。我在做這些講述時,假設你已經用過DataReader和DataSet類了,並對它們很熟悉。
  運用DataReader類
  下面就是運用DataReader類的理想條件: 你讀取的數據必須是新的,所以在每次需要數據的時候,你都必須從數據庫讀取。創建一個DataReader類不會消耗很多內存,不過隨着負荷的增加,DataSet上的性能也會很快地提高(參考資源中Visual Studio Magazine中的文章)。

本文轉自
http://tieba.baidu.com/f?kz=300839586
發佈了332 篇原創文章 · 獲贊 3 · 訪問量 47萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章