C#中DataSet、DataTable、DataReader的區別


簡單說就是:   
  DataSet:數據集。一般包含多個DataTable,用的時候,dataset["表名"]得到DataTable   
    
  DataTable:數據表。   
  一:   
  SqlDataAdapter   da=new   SqlDataAdapter(cmd);   
  DataTable   dt=new   DataTable();   
  da.Fill(dt);   
    
  -----------------   
  直接把數據結果放到datatable中,   
  二:   
  SqlDataAdapter   da=new   SqlDataAdapter(cmd);   
  DataSet   dt=new   DataSet();   
  da.Fill(dt);   
  ----------------   
  數據結果放到dataset中,若要用那個datatable,可以這樣:dataset[0]   
  更常見的用法:   
  SqlDataAdapter   da=new   SqlDataAdapter(cmd);   
  DataSet   dt=new   DataSet();   
  da.Fill(dt,"table1");   
  用的時候:這樣取datatable:       
  dataset["table1"]   
   


DataSet不能直接用來存儲數據,如果僅用DataSet,它會自動的生成一個DataTable,所以看上去就像一個DataTable。   
    
  如果有很多個DataTable需要同時綁定到某個控件,就可以把多個DataTable添加到一個DataSet中,分別起不同的名字就可以了Top
DataReader基於連接,它返回的數據是只讀只向前的,適合簡單地瀏覽且耗時比較短的操作。DataSet對象會將所需數據讀入內存然后斷開連接。它適合對數據進行復雜長時間的操作,並且需要更新數據的情況。Top

SqlDataReader只是建立與數據庫之間的類似於一個指針關系,在沒有調用Read()方法之間它不從數據讀出任何數據,而在調用Read()時也只是從數據庫中讀出一條數據.DATATABLE是數據表的一個復本,至於DataSet可以反它看作一個數據庫,因為它不但可以包括多個表而且還能包括各表之間的關系.所以在進行大量數據訪問時(特別是分頁方式的訪問)建議使用SqlDataReader,這樣可以節省大量的內存開銷.Top

DataSet就像內存數據庫,   
  DataTable就是表,   
  庫可以包含多個表,也可以包含表之間的關系。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM