marcthink
marcthink

Reputation: 13

check null field in linq new object

I have this code:

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")
});

When Value field is null, it throw an exception in casting process. How I can prevent this exception?

Upvotes: 1

Views: 975

Answers (2)

Rashmi Saini
Rashmi Saini

Reputation: 11

Use x.Field ("Value") in place of 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")

    });

Upvotes: 0

fubo
fubo

Reputation: 45947

null is a invalid value for double

make it nullable (if type of Value is nullable or can be changed into it)

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

or define a default value to use in case of null (e.g. if null then 0)

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

Upvotes: 8

Related Questions