C# 检查linq新对象中的null字段
我有以下代码:C# 检查linq新对象中的null字段,c#,linq,C#,Linq,我有以下代码: command = new SqlCommand(query, connection); reader = command.ExecuteReader(); var dataTable = new DataTable(); dataTable.Load(reader); reader.Close(); connection.Close(); var data2 = dataTable.AsEnumerable().Select(x => new { Date
command = new SqlCommand(query, connection);
reader = command.ExecuteReader();
var dataTable = new DataTable();
dataTable.Load(reader);
reader.Close();
connection.Close();
var data2 = dataTable.AsEnumerable().Select(x => new {
Datetime = x.Field<DateTime>("Datetime"),
Tagname = x.Field<String>("Tagname"),
Value = x.Field<Double>("Value")
});
当Value字段为null时,它会在转换过程中引发异常。如何防止此异常?null对于double无效
如果值的类型可为null或可以更改为null,则将其设置为null
Value = x.Field<double?>("Value");
null对于double是无效的值
如果值的类型可为null或可以更改为null,则将其设置为null
Value = x.Field<double?>("Value");
使用x.字段值代替x.字段值
var data2 = dataTable.AsEnumerable().Select(x => new {
Datetime = x.Field<DateTime>("Datetime"),
Tagname = x.Field<String>("Tagname"),
Value = x.Field <Double?>("Value")
});
使用x.字段值代替x.字段值
var data2 = dataTable.AsEnumerable().Select(x => new {
Datetime = x.Field<DateTime>("Datetime"),
Tagname = x.Field<String>("Tagname"),
Value = x.Field <Double?>("Value")
});
这取决于如果值为null,您希望发生什么?它应该保持为null还是应该为0,-1?这取决于如果值为null,您希望发生什么?它应该是空的还是应该是0,-1?谢谢@fubo,好的谢谢@fubo,好的