C 利用反射編寫的SqlHelper類

2022-01-11 23:53:04 字數 1871 閱讀 2733

以下是學習筆記:

1,常用的查詢方法:

例如:根據id查詢學生資訊

/// /// 根據id查詢物件

///

/// 查詢的物件

/// 物件id

///

public students find(int id)

";//using 使用完會自動釋放

using (sqlconnection conn = new sqlconnection(connstsring))

datareader.close();

return students;

}}

分析上面的**的問題:

以上只是查詢1個學生表,比如還有班級資訊表,課程表,商場的商品表,有10個表,100個表,一樣的**要寫很多遍

2,以下通過發射來寫乙個通用查詢的方法

/// /// 根據id查詢物件--通用的方法

///

/// 型別的名稱

///

/// 查詢的字段

///

public t find(int id, string fieldname)

";//之前的sql語句是定死的

//先找到型別

type type = typeof(t);

獲取所有的屬性

//select(p => p.name),linq查詢,p => p.name 屬性的名稱

表名稱

string sql =

$"select from where =";

using (sqlconnection conn = new sqlconnection(connstsring))

}datareader.close();

return (t) oobject;

}}

3,使用上面的通用方法

,新增students類

namespace models

/// /// 學生姓名

///

public string studentname

/// /// 性別

///

public string gender

/// /// 生日

///

public datetime dateofbirth

/// /// 考勤號

///

public decimal studentidno

/// /// **

///

public int classid

/// /// 年齡

///

public int age

/// /// **

///

public string phonenumber

/// /// 位址

///

public string studentaddress

}}

呼叫

mysqlserverhelper mysqlserverhelper=new mysqlserverhelper();

//普通方法

students students = mysqlserverhelper.find(100000);

//利用反射的通用方法

students newstudents = mysqlserverhelper.find(100000,"studentid");

type type11 = typeof(students);

foreach (var prop in type11.getproperties())

");}

JDBC利用反射編寫通用的查詢方法

廢話不多說,直接上 有注釋自己看。不明白就去看官方文件public t getresult class clazz,string sql,object.args 獲取查詢結果集 rs ps.executequery 通過resultset物件獲取resultsetmetadata物件 rsmd rs...

C 反射例項 一 利用反射使用類庫

首先我們建立乙個類庫,將它生成為helloworld.dll,using system using system.collections.generic using system.text namespace webtest public class reflecttest inte ce1 set...

C 利用反射動態繫結事件

大多數時都是強型別,直接繫結事件,但這種耦合關係太強,在動態呼叫dll的時候就不太合適了。以下是動態繫結和直接繫結的乙個簡單例項 1 using system 2using system.collections.generic 3using system.linq 4using system.tex...