簡單說就是:
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就是表,
庫可以包含多個表,也可以包含表之間的關系。