u011432167
Aaron挖了个坑
2016-02-01 07:39

DataTable 类型转换为 List 类型

  • datatable转换list

报错内容
图片说明

要转换的实体类 ID int类型,Name string 类型,这样报错的那两句要怎么写 ?

方法如下:
public static List ConvertToList(DataTable dt)
{

        // 定义集合
        List<T> ts = new List<T>();

        // 获得此模型的类型
        Type type = typeof(T);
        //定义一个临时变量
        string tempName = string.Empty;
        //遍历DataTable中所有的数据行
        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.ToString(), null);
                }
            }
            //对象添加到泛型集合中
            ts.Add(t);
        }

        return ts;

    }
  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

1条回答

为你推荐