DataTable转List,DataTable转为Model对象帮助类

DataTable转List,DataTable转为Model对象帮助类

public class ModelConvertHelper<T> where T : new()
   {
       public static List<T> ConvertToModel(DataTable dt)
       {
           // 定义集合    
           List<T> ts = new List<T>();
           // 获得此模型的类型   
           Type type = typeof(T);
           string tempName = "";
           foreach (DataRow dr in dt.Rows)
           {
               T t = new T();
               // 获得此模型的公共属性      
               PropertyInfo[] propertys = t.GetType().GetProperties();
               foreach (PropertyInfo pi in propertys)
               {
                   tempName = pi.Name;  // 检查DataTable是否包含此列    
                   if (dt.Columns.Contains(tempName))
                   {
                       // 判断此属性是否有Setter      
                       if (!pi.CanWrite) continue;
                       object value = dr[tempName];
                       if (value != DBNull.Value)
                           pi.SetValue(t, value, null);
                   }
               }
               ts.Add(t);
           }
           return ts;
       }
       public static T ConvertToInfo(DataTable dt)
       {
           // 定义集合    
           T ts = new T();
           // 获得此模型的类型   
           Type type = typeof(T);
           string tempName = "";
           foreach (DataRow dr in dt.Rows)
           {
               T t = new T();
               // 获得此模型的公共属性      
               PropertyInfo[] propertys = t.GetType().GetProperties();
               foreach (PropertyInfo pi in propertys)
               {
                   tempName = pi.Name;  // 检查DataTable是否包含此列    
                   if (dt.Columns.Contains(tempName))
                   {
                       // 判断此属性是否有Setter      
                       if (!pi.CanWrite) continue;
                       object value = dr[tempName];
                       if (value != DBNull.Value)
                           pi.SetValue(t, value, null);
                   }
               }
               return t;
           }
           return new T();
       }
   }
 
posted @ 2019-10-11 14:46  凌心缘  阅读(244)  评论(0编辑  收藏  举报