列表到DataTable扩展

时间:2018-03-06 02:07:33

标签: c# list datatable datarow

您好我正在编写一个将list转换为datatable的扩展方法。

public static DataTable ToDataTable<T>(this IList<T> list)
    {
        DataTable table = new DataTable();

        var properties = typeof(T).GetProperties();
        int columns = properties.Count();

        foreach (var property in properties)
        {
            //set the column count in this list
            table.Columns.Add(property.Name, Nullable.GetUnderlyingType(property.PropertyType) ?? property.PropertyType);
        }

        foreach(var element in list)
        {                                
            table.Rows.Add(element);
        }

        return table;
    }

此处某些列值可能为null。如何正确地将每个值映射到table.Rows

目前正在尝试将列表元素转换为列...我收到错误

  

无法将“PracticeContractsListDTO”类型的对象强制转换为类型   'System.IConvertible'。不能存储PracticeContractsListDTO   PracticeContractId专栏。预期的类型是Int64。

看不出我做错了什么。

0 个答案:

没有答案