ado.net資料訪問技術的乙個突出的特點就是支援離線訪問,而實現這種離線訪問技術的核心就是dataset物件,該物件通過將資料駐留在記憶體來實現離線訪問。
dataset物件概述
dataset物件由一組datatable物件組成,這些物件與datarelation物件互相關聯。這些dataset物件又包含rows集合,columns集合,rows集合由多個datarow物件組成,columns集合由多個datacolumn物件組成。
由於dataset物件很像資料庫,所以可以像訪問關係型資料庫那樣訪問dataset,例如在dataset中新增,刪除表,在表中進行查詢資料,刪除資料等操作。
dataset物件有常用的方法:
合併dataset內容
在上面的表中可以看出,合併dataset物件中的內容是通過merge方法來實現的。merge方法有多種過載,但是一般我們會遇到三種常見的過載,因此只是說明一些常見的過載:
(1)dataset物件.merge(datarow);//將datarow物件陣列合併到當前的dataset中
(2)dataset物件.merge(datatable);//將指定的datatable及其架構合併到當前的dataset中
(3)dataset物件.merge(dataset);//將dataset及其架構合併到當前的dataset中
例項:使用第二個過載方法建立乙個dataset資料集,該資料集包含乙個表,兩個列和六行資料。然後建立與第乙個表相同的第二個datatable。向第二個表中新增兩行,然後將該錶合併到dataset中的完整**為:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using system.data;//引入的命名空間
console.writeline();}}
}static void main(string args)
ds.acceptchanges();//載入上次更改後的資料
console.writeline("合併前的資料集");
program.printvalues(ds);//輸出ds中的表中的資料
datatable dt1 = dt.clone();//轉殖dt
datarow newrow;
newrow = dt1.newrow();//新增行
newrow["id"] = 0;
newrow["item"] = "";
dt1.rows.add(new object );
dt1.rows.add(new object );
ds.merge(dt1);//將dt1合併到ds中
console.writeline("\n"+"合併後的資料集");
program.printvalues(ds);//輸出ds中的資料
console.readline();}}
}
執行結果為:
複製dataset內容
在上面的表中可以看出要複製dataset物件中的內容,有兩種形式,一種是複製該dataset的結果但不複製資料,是由clone方法實現的。其格式為:dataset物件.clone();另一種是既複製結構也複製了資料,是由copy方法實現的,其格式為:dataset物件.copy();
例項:建立衣蛾dataset資料集,該資料集包含乙個表,兩個列和六行資料,然後分別建立兩個dataset物件,分別通過clone方法和copy方法進行dataset的內容複製的完整**:
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.threading.tasks;
using system.data;//引入的命名空間
console.writeline();}}
}static void main(string args)
ds.acceptchanges();//載入上次更改後的資料
console.writeline("源資料集");
program.printvalues(ds);//輸出ds中的表中的資料
dataset ds1 = ds.clone();//複製框架
dataset ds2 = ds.copy();//複製框架和資料
console.writeline("\n"+"clone方法");
program.printvalues(ds1);//輸出ds中的資料
console.writeline("\n" + "copy方法");
program.printvalues(ds2);//輸出ds中的資料
console.readline();}}
}
執行的結果為:
C 操作Dataset資料集與SQLite資料庫
近日有需要寫點c 程式,有用到dataset資料集和sqlite資料庫,由於我從來就不擅長記各種程式語言的語法,所以在查閱一堆資料後,留下以下內容備忘 一 sqlite操作,直接貼 很簡單 建立乙個資料庫檔案 string test.db system.data.sqlite.sqliteconne...
c 使用redis 訪問dataset資料集
1.下面是關於c 使用redis資料庫 對dataset進行訪問操作的方法using servicestack.redis using system using system.collections.generic using system.configuration using system.da...
C 操作Dataset資料集與SQLite資料庫
近日有需要寫點c 程式,有用到dataset資料集和sqlite資料庫,由於我從來就不擅長記各種程式語言的語法,所以在查閱一堆資料後,留下以下內容備忘 一 sqlite操作,直接貼 很簡單 建立乙個資料庫檔案 string test.db system.data.sqlite.sqliteconne...