喜 我想将list数据类型转换为datatype。 我写了这个函数
static DataTable ListToDataTable<T>(IEnumerable<T> list)
{
var dt = new DataTable();
foreach (var info in typeof(T).GetProperties())
{
dt.Columns.Add(new DataColumn(info.Name, info.PropertyType));
}
foreach (var t in list)
{
var row = dt.NewRow();
foreach (var info in typeof(T).GetProperties())
{
row[info.Name] = info.GetValue(t, null);
}
dt.Rows.Add(row);
}
return dt;
}
但这是抛出异常“DataSet不支持System.Nullable&lt;&gt;” 我们如何解决这个问题还是有其他解决方案
答案 0 :(得分:0)
试一试......
// When building table
Type pt = info.PropertyType;
if(pt.IsGenericType && pt.GetGenericTypeDefinition()==typeof(Nullable<>))
pt = Nullable.GetUnderlyingType(pt);
}
dt.Columns.Add(new DataColumn(info.Name, pt));
// When loading table
row[info.Name] = info.GetValue(t, null) ?? DBNull.Value;