天天看點

DataTable、DataView、DataReader和DataSet,DataGrid等的差別

 ArrayList是可變數組,隻能通過索引來查找資料。通過Add()方法添加資料..    

Hashtable是哈希表..存的是鍵值對...一個鍵對應一個值.優點就是可以通過關鍵字來找到對應的資料.  

如:Hashtable   ht   =   new   Hashtable();  

ht["a"]   =   "張三";  

ht["b"]   =   "李四";  

要獲得張三就可以通過   ht["a"]來得到,   而ArrayList就沒有這麼好用.  

DataView   的好處就是能夠給一個DataTable定義多個視圖,   當有兩個DataGrid需要顯示同一個DataTable中的資料的時候,可以定義兩個DataView來綁定到控件上。  

DataReader用于一行一行的讀取資料。  

DataSet是資料集...裡面放的是多個資料表.用來儲存查詢到的資料.  它相對于DataReader可以建立本地副本,還可以進行很多操作,比如篩選,排序等,若對資料不進行操作最好選擇DataReader.DataSet是個類.

DataGrid是顯示資料的控件.  

datatable、一個資料的表

把dataset看作資料庫,

把datatable看作資料庫裡的一個表

把datagridview看作顯示表裡資料的表格工具

DataReader基于連接配接,它傳回的資料是隻讀隻向前的,适合簡單地浏覽且耗時比較短的操作。DataSet對象會将所需資料讀入記憶體然後斷開連接配接。它适合對資料進行複雜長時間的操作,并且需要更新資料的情況。

SqlDataReader隻是建立與資料庫之間的類似于一個指針關系,在沒有調用Read()方法之間它不從資料讀出任何資料,而在調用Read()時也隻是從資料庫中讀出一條資料.DATATABLE是資料表的一個複本,至于DataSet可以反它看作一個資料庫,因為它不但可以包括多個表而且還能包括各表之間的關系.是以在進行大量資料通路時(特别是分頁方式的通路)建議使用SqlDataReader,這樣可以節省大量的記憶體開銷.