1. 程式人生 > >ArrayList、Hashtable、DataTable、DataView、DataReader和DataSet,DataGrid等的區別和各自的優缺點

ArrayList、Hashtable、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,這樣可以節省大量的記憶體開銷.