本文实例讲述了asp.net利用反射实现给model类赋值的方法。分享给大家供大家参考,具体如下:
/// <summary>/// 给model类自动赋值/// </summary>/// <param name="sqlstring">获取查询一个model实例的sql语句</param>/// <param name="obj">model实例对象</param>/// <returns></returns>public object selmodel(string sqlstring,object obj){
DataTable dtsell = lcommonbll.GetTable(sqlstring);
int count = dtsell.Rows.Count;
if (count == 0) {
return null;
}
else {
DataRow dr = dtsell.Rows[0];
#region 另一种方法 //foreach (DataColumn col in dr.Table.Columns) //{
// PropertyInfo pt = seller.GetType().GetProperty(col.ColumnName);
// if (String.IsNullOrEmpty(dr[col.ColumnName].ToString())) // {
// break;
// }
// else // {
// pt.SetValue(seller, dtsell.Rows[0][0], null);
// }
//}
#endregion foreach (System.Reflection.PropertyInfo pi in obj.GetType().GetProperties()) {
if (pi.CanWrite) {
try {
if (dtsell.Rows[0][pi.Name]!=null) {
pi.SetValue(obj, dtsell.Rows[0][pi.Name], null);
}
else {
pi.SetValue(obj, null, null);
}
}
catch {
pi.SetValue(obj, null, null);
}
}
}
return obj;
}
}
.CS调用
Seller seller = new Seller();
//实体类bind BIND = new bind();
//绑定方法类seller = (Seller)BIND.selmodel("select * from seller where SID=2", seller);
//赋值
更多关于asp.net相关内容感兴趣的读者可查看本站专题:《asp.net优化技巧总结》、《asp.net字符串操作技巧汇总》、《asp.net操作XML技巧总结》、《asp.net文件操作技巧汇总》、《asp.net ajax技巧总结专题》及《asp.net缓存操作技巧总结》。
希望本文所述对大家asp.net程序设计有所帮助。