本文转自:http://blog.csdn.net/donetren/article/details/5270594
///<summary>
2 /// 设置相应属性的值
3 ///</summary>
4 ///<param name="entity">实体</param>
5 ///<param name="fieldName">属性名</param>
6 ///<param name="fieldValue">属性值</param>
7 publicstaticvoid SetValue(object entity, string fieldName, string fieldValue)
8 {
9 Type entityType = entity.GetType();
10
11 PropertyInfo propertyInfo = entityType.GetProperty(fieldName);
12
13 if (IsType(propertyInfo.PropertyType, "System.String"))
14 {
15 propertyInfo.SetValue(entity, fieldValue, null);
16
17 }
18
19 if (IsType(propertyInfo.PropertyType, "System.Boolean"))
20 {
21 propertyInfo.SetValue(entity, Boolean.Parse(fieldValue), null);
22
23 }
24
25 if (IsType(propertyInfo.PropertyType, "System.Int32"))
26 {
27 if (fieldValue !="")
28 propertyInfo.SetValue(entity, int.Parse(fieldValue), null);
29 else
30 propertyInfo.SetValue(entity, 0, null);
31
32 }
33
34 if (IsType(propertyInfo.PropertyType, "System.Decimal"))
35 {
36 if (fieldValue !="")
37 propertyInfo.SetValue(entity, Decimal.Parse(fieldValue), null);
38 else
39 propertyInfo.SetValue(entity, new Decimal(0), null);
40
41 }
42
43 if (IsType(propertyInfo.PropertyType, "System.Nullable`1[System.DateTime]"))
44 {
45 if (fieldValue !="")
46 {
47 try
48 {
49 propertyInfo.SetValue(
50 entity,
51 (DateTime?)DateTime.ParseExact(fieldValue, "yyyy-MM-dd HH:mm:ss", null), null);
52 }
53 catch
54 {
55 propertyInfo.SetValue(entity, (DateTime?)DateTime.ParseExact(fieldValue, "yyyy-MM-dd", null), null);
56 }
57 }
58 else
59 propertyInfo.SetValue(entity, null, null);
60
61 }
62
63 }
64 ///<summary>
65 /// 类型匹配
66 ///</summary>
67 ///<param name="type"></param>
68 ///<param name="typeName"></param>
69 ///<returns></returns>
70 publicstaticbool IsType(Type type, string typeName)
71 {
72 if (type.ToString() == typeName)
73 returntrue;
74 if (type.ToString() =="System.Object")
75 returnfalse;
76
77 return IsType(type.BaseType, typeName);
78 }