我有一个方法,可以将数据表从LINQ返回到SQL
我是
public static DataTable LinqToDataTable<T>(IEnumerable<T> source)
{
DataTable output = new DataTable();
try
{
PropertyInfo[] properties = typeof(T).GetProperties();
foreach (var prop in properties)
{
output.Columns.Add(prop.Name, Nullable.GetUnderlyingType(
prop.PropertyType) ?? prop.PropertyType);
}
foreach (var item in source)
{
DataRow row = output.NewRow();
foreach (var prop in properties)
{
row[prop.Name] = prop.GetValue(item, null) ?? DBNull.Value;
}
output.Rows.Add(row);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
return output;
}
我的问题是,如果DateTime字段中的任何一个为空,这种方法将抛出一个异常作为
The null value cannot be assigned to a member with type System.DateTime which is a non-nullable value
类型。
如何纠正错误。请任何人帮助我
将属性声明为DateTime怎么样。如果您有日期-时间属性,您可以将类型更改为DateTime?从DateTime。
您创建了一个DateTime类型的列,并试图将该列设置为null。