将动态列表转换为数据表c#

yke*_*kel 7 c#

我正在搜索和破解我的大脑如何将动态列表转换为数据库,c#,请指教,谢谢

List<dynamic>dlist=new List<dynamic>
Run Code Online (Sandbox Code Playgroud)

DataTable 
Run Code Online (Sandbox Code Playgroud)

AHM*_*AIZ 5

以下是您可以将任何列表对象转换为数据表的方法.

 public DataTable ConvertToDataTable<T>(IList<T> data)
    {
        PropertyDescriptorCollection properties =
           TypeDescriptor.GetProperties(typeof(T));
        DataTable table = new DataTable();
        foreach (PropertyDescriptor prop in properties)
            table.Columns.Add(prop.Name, Nullable.GetUnderlyingType(prop.PropertyType) ?? prop.PropertyType);
        foreach (T item in data)
        {
            DataRow row = table.NewRow();
            foreach (PropertyDescriptor prop in properties)
                row[prop.Name] = prop.GetValue(item) ?? DBNull.Value;
            table.Rows.Add(row);
        }
        return table;

    }
Run Code Online (Sandbox Code Playgroud)

http://social.msdn.microsoft.com/Forums/vstudio/en-US/6ffcb247-77fb-40b4-bcba-08ba377ab9db/converting-a-list-to-datatable?forum=csharpgeneral


Maj*_*man 5

我想你看起来像这样。希望它为您工作。

   List<dynamic> dlist=new List<dynamic> 
   var json = JsonConvert.SerializeObject(dlist);
   DataTable dataTable = (DataTable)JsonConvert.DeserializeObject(json, (typeof(DataTable)));
Run Code Online (Sandbox Code Playgroud)

  • 精湛的解决方案 (2认同)