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