復(fù)制代碼 代碼如下:
public bool Add(Liuyan refmodel)
{
string sql = "insert into liuyan(name,phone,zhiwei,gongsi,addr,country,dianyou,content,adddate)values(@name,@phone,@zhiwei,@gongsi,@addr,@country,@dianyou,@content,@adddate)";
OleDbParameter[] parameters ={
new OleDbParameter("@name",OleDbType.VarChar),
new OleDbParameter("@tel",OleDbType.VarChar),
new OleDbParameter("@zhiwei",OleDbType.VarChar),
new OleDbParameter("@gongsi",OleDbType.VarChar),
new OleDbParameter("@addr",OleDbType.VarChar),
new OleDbParameter("@country",OleDbType.VarChar),
new OleDbParameter("@dianyou",OleDbType.VarChar),
new OleDbParameter("@content",OleDbType.VarChar),
new OleDbParameter("@adddate",OleDbType.VarChar)
};
parameters[0].Value=model.Xingming;
parameters[1].Value=model.Tel;
parameters[2].Value=model.Zhiwei;
parameters[3].Value=model.Gongsi;
parameters[4].Value=model.Addr;
parameters[5].Value=model.Country;
parameters[6].Value=model.Dianyou;
parameters[7].Value=model.Content;
parameters[8].Value=model.Adddate;
return sqlHelper.executeCommand(sql, parameters);
}
本文講反射 現(xiàn)在就說(shuō)在這段代碼的哪個(gè)位置使用反射 只是本人編碼過(guò)程中為了省勁突發(fā)奇想
復(fù)制代碼 代碼如下:
parameters[0].Value=model.Xingming;
parameters[1].Value=model.Tel;
parameters[2].Value=model.Zhiwei;
parameters[3].Value=model.Gongsi;
parameters[4].Value=model.Addr;
parameters[5].Value=model.Country;
parameters[6].Value=model.Dianyou;
parameters[7].Value=model.Content;
parameters[8].Value=model.Adddate;
當(dāng)類里有很多屬性的時(shí)候上面這段代碼可以使用反射來(lái)賦值
復(fù)制代碼 代碼如下:
//使用反射記得引用using System.Reflection;命名空間
Type t = refmodel.GetType();
for (int i = 0; i t.GetProperties().Length; i++)
{
parameters[i].Value= t.GetProperties()[i].GetValue(refmodel, null);
}
這里使用反射來(lái)獲取類的所有屬性
然后遍歷屬性并把遍歷到的屬性值賦給參數(shù)
當(dāng)然這里是添加的方法沒(méi)有model.Id
所以for循環(huán)的時(shí)候要從1開(kāi)始
然后 parameters[i].Value賦值的時(shí)候i要減一 parameters[i-1].Value
這樣以后寫(xiě)數(shù)據(jù)層的時(shí)候給參數(shù)賦值就不用苦逼的一個(gè)一個(gè)復(fù)制粘貼了
怎么樣 個(gè)人小心得和大家分享
使用代碼生成工具的可以無(wú)視啦
您可能感興趣的文章:- 淺談.NET反射機(jī)制的性能優(yōu)化 附實(shí)例下載
- .net中 關(guān)于反射的詳細(xì)介紹
- asp.net反射簡(jiǎn)單應(yīng)用實(shí)例
- .NET/C#利用反射調(diào)用含ref或out參數(shù)的方法示例代碼
- .NET/C#如何使用反射注冊(cè)事件詳解
- .NET Core/Framework如何創(chuàng)建委托大幅度提高反射調(diào)用的性能詳解