DataSet V.S DataReader

  • 2512
  • 0

摘要:DataSet V.S DataReader

DataReader  ----  很類似以前ADO的RecordSet,但資料指標只能循序向前(Forward)無法後退,所以無法撰寫「分頁」的功能。優點是效率高、速度快,很適合用來作為單純的工作,例如:展示大量資料。

DataSet  ----  一種離線運作的資料庫快取,存放在主機的記憶體裡面。DataSet是透過DataAdapter(資料配接器)來執行SQL指令,功能非常強大,幾乎就是資料庫的翻版(如:DataView、DataTable、Relationship等等都作得到)。可以把資料庫複製到主機的記憶體裡面,如此一來面對關係複雜的多重資料表,就能快速地處理。缺點是:使用DataSet比較消耗資源。

 

用表格來比較如下: 

 

(資料來源,以MS SQL Server為例)

ADO.NET兩大物件的比較

DataSet

DataReader

連接資料庫(Connection

(不需要,因為SqlDataAdapter會自動開啟連結,使用後自動關閉)

 

請看:[ADO.NET]DataSet與DataAdapter,為何不需要自己寫程式去開啟資料庫連線與關閉之?

SqlConnection.Open()

執行SQL指令

1. Select

2. Delete/Update/Insert

SqlDataAdapter

1.      .Fill()方法

2.      .Update()方法

SqlCommand

1.  .ExecuteReader()方法

2.  .ExecuteNonQuery()方法

資料指標

移動

DataSet類似資料庫行為的資料快取。這些資料將存放在記憶體裡面,所以可以自由靈活地操作內部資料。

讀取資料時,只能「唯讀、順向(Forward)」的動作。

如何處理資料庫

資料表?

可以處理複雜的資料庫關聯與多個DataTable、DataView。

透過使用者自訂的SQL指令來存取。

適合處理單一的資料表。

消耗資源

較大

小,而且快速

分頁功能

(Paging

無 

 

資料來源:http://www.dotblogs.com.tw/mis2000lab/archive/2008/08/15/4919.aspx