繁体   English   中英

检查linq新对象中的空字段

[英]check null field in linq new object

我有以下代码:

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 ,它将在转换过程中引发异常。 我如何防止这种异常?

nulldouble的无效值

使它为可为空(如果Value类型为可为空或可以更改为它)

Value = x.Field<double?>("Value"); 

或限定的默认值中的情况下,使用null (例如,如果null则0)

Value = x.Field<double?>("Value") ?? 0;

使用x.Field(“ Value”)代替x.Field(“ Value”)

 var data2 = dataTable.AsEnumerable().Select(x => new {
        Datetime = x.Field<DateTime>("Datetime"),
        Tagname = x.Field<String>("Tagname"),
        Value =   x.Field <Double?>("Value")

    });

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM