C 之資料集 DataSet物件

2021-07-02 20:52:39 字數 2734 閱讀 5872

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...