|
DataSet的定義:對象是ADO。NET中非連接存儲和關(guān)系型數(shù)據(jù)處理的基礎(chǔ)數(shù)據(jù)對象。可以將從數(shù)據(jù)庫中取得的數(shù)據(jù)集合全部存儲于DataSet對象中,操作存儲于DataSet的數(shù)據(jù),然后再次連接到數(shù)據(jù)庫,根據(jù)DataSet的數(shù)據(jù)更新目前數(shù)據(jù)庫中的數(shù)據(jù)。
DataSet的主要方法: 1 Clear:清空DataSet的所有DataTable 2 Merge把兩個DataSet合并成一個 3 AcceptChanges更新對DataSet的所有更改 4 GetChanges獲得對DataSet進行的所有更改 5 HasChanges判斷是否有對DataSet進行更改 6 放棄對DataSet對數(shù)據(jù)庫進行的更改 對象:1 DataTable 記錄集(相當于表) 2 DataColumn 記錄集的字段(相當于列) 3 DataRow 記錄(相當于行) 4 DataView 數(shù)據(jù)視圖,是基于DataSet對象中數(shù)據(jù)的查詢條件的。 5 DataRelation 定義不同DataTable 之間的關(guān)系 寫了一個DataSet的代碼清單 DataSet ds=new DataSet(); DataTable dt1=new DataTable(); DataTable dt2=new DataTable(); DataColumn dc1=new DataColumn(“a1″,typeof(int)); DataColumn dc1=new DataColumn(“a2″,typeof(int)); DataColumn dc1=new DataColumn(“a2″,typeof(int)); DataColumn dc1=new DataColumn(“a3″,typeof(int)); dt1.Column.Add(dc1); dt1.Column.Add(dc2); dt2.Column.Add(dc2); dt2.Column.Add(dc3); ds.Tables.Add(dt1); ds.Tables.Add(dt2); //在dt1和dt2之間建立一個名為a2的DataRelation ds.Relation.Add(“a2″,ds.Tables["dt1"].Column["a2"],Tables["dt2"].Column["a2"]); 對象是對數(shù)據(jù)集合進行向前數(shù)條的讀取 DataSet和DataReader都可以完成對數(shù)據(jù)的操作和存儲 DataReader對數(shù)據(jù)讀取方便而且快 ,而DataSet有強大的數(shù)據(jù)庫操作功能和非連接訪問模式 DataReader和DataSet最大的區(qū)別:DataReader使用時始終占用SqlConnection,在線操作數(shù)據(jù)庫..任何對SqlConnection的操作都會引發(fā)DataReader的異常..因為DataReader每次只在內(nèi)存中加載一條數(shù)據(jù),所以占用的內(nèi)存是很小的..因為DataReader的特殊性和高性能.所以DataReader是只進的 讀了第一條后就不能再去讀取第一條了 DataSet則是將數(shù)據(jù)一次性加載在內(nèi)存中.拋棄數(shù)據(jù)庫連接..讀取完畢即放棄數(shù)據(jù)庫連接..因為DataSet將數(shù)據(jù)全部加載在內(nèi)存中.所以比較消耗內(nèi)存…但是確比DataReader要靈活..可以動態(tài)的添加行,列,數(shù)據(jù).對數(shù)據(jù)庫進行回傳更新操作 應(yīng)用: 1 當需要操作非連接數(shù)據(jù),將數(shù)據(jù)發(fā)送到應(yīng)用程序或客戶端,提供使用者進行更改之后更新數(shù)據(jù)庫的時候,用DataSet 2 當需要存儲、傳輸、操作多個數(shù)據(jù)庫表時,并且表之間存在著數(shù)據(jù)關(guān)系時,用DataSet 3 需要對數(shù)據(jù)進行調(diào)度操作時,如:數(shù)據(jù)分頁瀏覽或跳轉(zhuǎn)到固定記錄的時候用DataSet 4 當需要一次性讀取數(shù)據(jù)到客戶端而且沒有更新刪除操作時建議使用DataReader 5 需要遍歷一個數(shù)據(jù)集,對數(shù)據(jù)的每條記錄進行只讀時用DataReader |
|
|
來自: 悟靜 > 《.net和asp.net》