DataSet與DataTable基本用法

2022-08-22 01:45:11 字數 2768 閱讀 2374

在設計資料庫操作或者xml操作等**資料時,我們難免要跟dataset和datatable打交道,我們這裡就介紹下這幾個類的用法:

首先介紹datatable,其實就是乙個二維**,沒那麼懸乎,舉個構造的例子:

datatable dt = new datatable("customers");

dt.columns.add("customerid", typeof(int32));

dt.columns.add("customername", typeof(string));

dt.columns.add("description", typeof(string));

datarow row = dt.newrow();

row[0] = 001;

row[1] = "大眾";

row[2] = "中檔車";

dt.rows.add(row);

datarow row2 = dt.newrow();

row2[0] = 002;

row2[1] = "賓士";

row2[2] = "豪車";

dt.rows.add(row2);

這就構造了乙個二行三列的二維表了。

其次就是dataset:我們可以把它看做是datatable的集合容器,我們可以往裡面新增很多表。比如:

1             customerorders = new

dataset();

2customerorders.tables.add(customertable);

3customerorders.tables.add(ordertable);

4customerorders.tables.add(orderdetailtable);

5 customerorders.tables.add(producttable);

view code

這裡就新增了四個表。

當然,dataset還有其他的內容,這裡我平時用得少但是很重要的地方就是datarelation,這個我們可以想成表與表之間通過某列來建立乙個聯絡,這樣我們就可以通過某行的getchildrows得到子列的行集合(滿足關係),或者通過getparentrow得到父列的行。

1            datarelation customerordersrelation = new datarelation("

custorders",

2 customerorders.tables["

customers

"].columns["

customerid"],

3 customerorders.tables["

orders

"].columns["

customerid

"]);

4customerorders.relations.add(customerordersrelation);

5 datarelation orderdetailrelation = customerorders.relations.add("

orderdetail",

6 customerorders.tables["

orders

"].columns["

orderid"],

7 customerorders.tables["

orderdetails

"].columns["

orderid

"], false

);8 datarelation orderproductrelation = customerorders.relations.add("

orderproducts",

9 customerorders.tables["

product

"].columns["

productid"],

10 customerorders.tables["

orderdetails

"].columns["

productid

"]);

1112 datarow rows = customerorders.tables["

customers

"].rows[0

].getchildrows(customerordersrelation);

13 datatable dt =ordertable.clone();

14foreach (datarow row in

rows)

1519

20 stringbuilder sw = new

stringbuilder();

21foreach (datarow custrow in customerorders.tables["

customers

"].rows)

2232

}33 }

view code

子行可以有很多,但是父行只有一行。

至於那些外來鍵,主鍵,約束,以及更新表的時候的一些操作,因為涉及到資料庫的很多知識,這裡就不做描述了,我們側重這兩個類的用法。

dataset與實體類

dataset與sqldataadapter物件是微軟在ado.net中推出的新一代的資料訪問方式,有些情況下非常適合使用 dataset,例如在設計原型 開發小型系統和支援實用程式時。但是,在企業系統中使用 dataset 可能並不是最佳的解決方案,因為對企業系統來說,易於維護要比投入市場的時間更...

DataReader與Dataset有什麼區別?

第一種解釋 dataset則是將資料一次性載入在記憶體中.拋棄資料庫連線.讀取完畢即放棄資料庫連線.因為dataset將資料全部載入在記憶體中.所以比較消耗記憶體.但是確比datareader要靈活.可以動態的新增行,列,資料.對資料庫進行回傳更新操作.第二種解釋 使用datareader與data...

簡單認識DataSet與DataTable

dataset 是放在記憶體中的,對dataset中資料的修改並不直接反應到資料庫,要通過 dataadapter 的 update 方法更新回資料庫 dataset相當你用的資料庫 datatable相當於你的表。乙個 dataset 可以包含多個 datatable dataset 由表 關係和...