Dataset和DataReader的區別

ADO.NET2.0提供了兩個用於檢索關係數據的對象:DataSet和DataReader。並且這兩個對象都可以將檢索的關係數據存儲在內存中。

在軟件開發過程中經常用到這兩個控件,由於這兩個控件在使用和功能方面的相似,很多程序員錯誤地認爲DataSet和DataReader是可以相互替代的。這種想法是錯誤的,在這我們分析一下DataSet控件和DataReader控件的區別。


■與數據庫連接
DatSet 連接數據庫時是非面向連接的。把表全部讀到Sql中的緩衝池,並斷開於數據庫的連接。

Datareader 連接數據庫時是面向連接的。讀表時,只能向前讀取,讀完數據後有用戶決定是否斷開連接。


■    處理數據速度
DataSet讀取、處理速度較慢。

DataReader讀取、處理速度較快。


■    更新數據庫
在對DataSet數據集中的數據進行更新後,可以把數據更新回原來的數據庫。

在對DataReader中的數據進行更新後,沒有辦法進行數據庫更新。  


■    支持分頁排序
在DataSet中支持分頁、動態排序等操作。

在DataReader中沒有分頁、動態排序的功能。


■     佔用內存
DataSet在 IIS 服務器上所使用的內存較多。

DataReader在 IIS 服務器上所使用的內存較少。


綜上所述得出DataSet和DataReader有各自適用的場合。如果數據來源控件只是用來填入控件的清單成爲其選項,或者數據綁定控件並不需要提供排序或分頁功能的話,則應該使用 DataReader。反之,如果數據綁定控件需要提供排序或分頁功能的話,則必須使用 DataSet,通過DataSet設置出來分頁排序等頁面面顯示效果。



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章