2 u011432167 u011432167 于 2016.02.01 15:39 提问

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个回答

caozhy
caozhy   Ds   Rxr 2016.02.02 07:38
已采纳

pi.SetValue(t, int.Parse(value.ToString()), null);

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!