C 泛型《機房重構》

2021-07-10 07:33:36 字數 1642 閱讀 5127

原理

實體類即資料庫的對映,因此實體類中的屬性和資料庫表中的字段是相對應的。把datatable中的每一行記錄視為乙個實體類,把其中的字段讀取出來,存放到實體類的屬性中,再把所有的實體類存在泛型集合中。因此,datatable中有多少個記錄,泛型集合中就有多少個實體類,每個實體類的屬性和datatable的字段是相對應的。

1、 編寫b層的人員無需手動填寫需要的字段,直接按一下點,全都提示出來了,想用哪個用哪個,不會出現寫錯的情況。

2、不必了解資料庫結構。

3、符合物件導向思想。

4、實體類的屬性是強型別,每個欄位的型別都是已知的。

1、實體類的屬性名必須和資料庫表中的欄位名一模一樣。

2、想用這種方法把datatable轉換成實體類,必須有已知的實體類和datatable中的資料相對應,也就是說必須明確你要轉換成的實體類型別,否則沒辦法指定泛型集合的型別,也就沒辦法呼叫。

3、各個表的字段盡量區別開來,不要相同。比如a表有個name欄位,b表也有乙個name欄位,就不合理了。

說了這麼多,那麼,到底如何來實現datatable轉泛型呢?我們先看**。

using system;  

using system.collections.generic;

using system.linq;

using system.text;

using system.data;

using system.collections;

using system.reflection;

namespace sqldal

} //物件新增到泛型集合中

ts.add(t);

} return ts;

} }

}

這個是由datatable轉為泛型的converthelper,這個是通用的,又有小夥伴問了,那麼我在d層該怎麼寫呢?
datatable table =sqldal.sqlhelper.getdatatable(sql, commandtype.text, sqlparams);//呼叫sqlhelper中的有返回值的方法

if (table.rows.count > 0)

else

好了,泛型已經轉換成功了,在u層中,我們需要將泛型集合中的資料調出來
txtrate.text = list[0].rate.tostring();

txttmprate.text = list[0].tmprate.tostring();

txtprepare.text = list[0].preparetime.tostring();

txtlimit.text = list[0].limitcash.tostring();

lblmoduser.text = list[0].head.tostring();

這個就是我u層將資料取出的**。

想要做出來乙個功能,有很多方法,我們的任務不僅僅是掌握這些方法,更重要的是分析這些方法,區別這些方法,找到它們各自的優缺點,這樣才能更好的使用這些方法。

機房重構 泛型

1 datatable 是乙個臨時儲存資料的網格虛擬表 表示記憶體中資料的乙個表。datatable是ado dot net 庫中的核心物件。它可以被應用在 vb 和 asp 上。它無須 就可以簡單的繫結資料庫。它具有微軟風格的使用者介面。應用 執行查詢的操作,無參 需要執行語句,一般是sql語句,...

C 機房重構 優化

一 基本限制 限制只能輸入漢字,正規表示式 if regex.ismatch this.txtdepartment.text.trim u4e00 u9fa5 this.txtdepartment.text.length 4 只能輸入數字 private void txtcardno keypres...

C 機房重構 儲存過程

在沒有進行機房之前,就聽到童鞋們講在機房重構時,會用儲存過程,用這個,用那個,自己想,用它們有什麼用?能給我們帶來方便嗎?一 什麼是儲存過程?是在大型資料庫系統中,一組為了完成特定功能的sql語句集,儲存在資料庫中,經過第一次編譯後再次呼叫不需要再次編譯,使用者通過制定儲存過程的名字並給出引數來執行...