DataTable转成List集合

来源:互联网 发布:鼎丰汽车租赁软件 编辑:程序博客网 时间:2024/05/17 02:11
项目开发中,经常会获取到DataTable对象,需要把它转化成一个List对象,网上搜索了一个万能类,用了泛型和反射的知识。如下:
public class ModelHelper<T> where T : new()  // 此处一定要加上new()    {        public static IList<T> DataTableToModel(DataTable dt)        {            IList<T> list= 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 pro in propertys)                {                    tempName = pro.Name;                    if (dt.Columns.Contains(tempName))                    {                        if (!pro.CanWrite) continue;                        object value = dr[tempName];                        if (value != DBNull.Value)                            pro.SetValue(t, value, null);                    }                }                list.Add(t);            }            return list;        }    }
   调用的话就简单了:
          譬如你有个Model类是Goods那么调用的时候就

    IList<Goods> list = ModelHelper<Goods>.ConvertToModel(dt);

 

原创粉丝点击