最大的網站源碼資源下載站,
今天遇到一個問題,就是數據實體類中如何給屬性賦值.因為從數據庫中取出來的是一個dataset如果一個一個給數據實體類中的屬性賦值顯的非常的笨拙,而且我們的數據表多達24個.在網上搜索了下寫出了個簡單的方法,代碼如下:
首先我們做個實體類
1 public class class1
2 {
3 private int inttemp;
4
5 public int inttemp
6 {
7 get { return inttemp; }
8 set { inttemp = value; }
9 }
10 }
11
那我們怎么找到他并賦值呢?
代碼如下:
1 using system;
2 using system.collections.generic;
3 using system.text;
4 using system.reflection;
5 using system.data;
6
7 namespace consoleapplication1
8 {
9 class program
10 {
11 static void main(string[] args)
12 {
13 class1 c = new class1();
14 /*這里是構造一個dataset*/
15 dataset ds = new dataset();
16 datatable dt = new datatable();
17 dt.columns.add("inttemp",sqldbtype.int.gettype());
18 datarow dr = dt.newrow();
19 dr["inttemp"] = 2;
20 dt.rows.add(dr);
21 ds.tables.add(dt);
22
23 /*這里是重點*/
24 foreach (datarow dr1 in ds.tables[0].rows)
25 {
26 foreach (datacolumn dc in dr1.table.columns)
27 {
28 propertyinfo pi = c.gettype().getproperty(dc.columnname);//獲取根據表的類名創建的實體類屬性
29 pi.setvalue(c, dc.table.rows[0][0], null);//設置這個屬性的值
30 }
31 }
32 console.write(c.inttemp+"/n");
33 }
34 }
35
36 }
大家可能問這個有什么用?當你按照數據庫表的形式簡歷了一個實體類就可以用這個循環寫一個共有的方法專門給不同的實體類的屬性賦值,因為pi.setvalue方法的第一個值是object形式的.這樣我們就少了很多的麻煩事情.
不知道這個方法對多數據集是否有效率的問題.高手們看了后給我點意見修改下.謝謝了.
新聞熱點
疑難解答
圖片精選