在設計資料庫操作或者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 = newview codedataset();
2customerorders.tables.add(customertable);
3customerorders.tables.add(ordertable);
4customerorders.tables.add(orderdetailtable);
5 customerorders.tables.add(producttable);
這裡就新增了四個表。
當然,dataset還有其他的內容,這裡我平時用得少但是很重要的地方就是datarelation,這個我們可以想成表與表之間通過某列來建立乙個聯絡,這樣我們就可以通過某行的getchildrows得到子列的行集合(滿足關係),或者通過getparentrow得到父列的行。
1 datarelation customerordersrelation = new datarelation("view codecustorders",
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 }
子行可以有很多,但是父行只有一行。
至於那些外來鍵,主鍵,約束,以及更新表的時候的一些操作,因為涉及到資料庫的很多知識,這裡就不做描述了,我們側重這兩個類的用法。
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 由表 關係和...