检查Linq查询中的空值

时间:2016-04-22 22:13:41

标签: c# linq

我有一个数据集,我正在进行linq查询。

var results = dtWorkCenters.AsEnumerable()
            .Where(x => x.Field<string>("Work_Center") == theWorkCenter && x.Field<string>("Job") == theJob)
            .Select(x => new
                {
                    Operation = x.Field<string>("Job_Operation"),
                    WorkDate = x.Field<DateTime>("Work_Date"),
                    Employee = x.Field<string>("Employee"),
                    SetupHours = x.Field<double>("Act_Setup_Hrs"),
                    SetupDollars = x.Field<double>("Act_Labor_Dollars"),
                    RunHours = x.Field<double>("Act_Run_Hrs"),
                    RunDollars = x.Field<double>("Act_Labor_Dollars")
                });

字段Job_Operation是数据库中的字符串int,但可能包含空值。以上语法对空值失败。如何防止数据中的空值?

1 个答案:

答案 0 :(得分:1)

我认为您使用null值时遇到的问题可能是尝试设置值类型(DateTimedouble)属性(WorkDate,{ {1}}等){} {}。

如果是这种情况,请在SetupHoursnull的调用中尝试指定Nullable<DateTime>Nullable<double>作为通用Field类型1}}像这样:

DateTime?