我正在搜索和破解我的大脑如何将动态列表转换为数据库,c#,请指教,谢谢
List<dynamic>dlist=new List<dynamic>
Run Code Online (Sandbox Code Playgroud)
至
DataTable
Run Code Online (Sandbox Code Playgroud)
以下是您可以将任何列表对象转换为数据表的方法.
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)
我想你看起来像这样。希望它为您工作。
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)