发一个自动给实体赋值的方法

在对数据表做添加和修改操作时需要给实体的每一个属性赋值,我所写这个方法主要目的是为了简化这一步,把实体传入方法,自动完成赋值。

 

代码
 1 public static class RequestFormToEntity<T> where T : new()
 2     {
 3         /// <summary>
 4         /// 实体类赋值
 5         /// 注意:控件名称需要和数据库字段名称一致
 6         /// </summary>
 7         /// <typeparam name="T"></typeparam>
 8         /// <param name="t">实体对象</param>
 9         /// <param name="form">Request.Form</param>
10         /// <param name="controlPrefix">控件前缀(服务端控件生成HTML时自动加入部分)</param>
11         /// <returns></returns>
12         public static int GetPost(ref T t, NameValueCollection form, string controlPrefix)
13         {
14             int va = 0;
15             Type type = t.GetType();//获取类型
16             PropertyInfo[] pi = type.GetProperties();//获取属性集合
17             foreach (PropertyInfo p in pi)
18             {
19                 if (form[controlPrefix + p.Name] != null)
20                 {
21                     try
22                     {
23                         p.SetValue(t, Convert.ChangeType(form[controlPrefix + p.Name], p.PropertyType), null);//为属性赋值,并转换键值的类型为该属性的类型
24                         va++;//记录赋值成功的属性数
25                     }
26                     catch
27                     {
28                         //return 0;
29                     }
30                 }
31             }
32             return va;
33         }
34     }

 

 

调用方法:

 

SystemParameterEntity se = new SystemParameterEntity(true);
RequestFormToEntity
<SystemParameterEntity>.GetPost(ref se, Request.Form, "ctl00$ContentPlaceHolder1$");

 

 

 

posted @ 2009-12-03 21:25  JasonChou  阅读(552)  评论(0编辑  收藏  举报