首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Linq选择中处理空值

如何在Linq选择中处理空值
EN

Stack Overflow用户
提问于 2010-11-24 10:17:17
回答 2查看 8.3K关注 0票数 3

填充误差

指定的强制转换无效

如果使用:

代码语言:javascript
复制
annual_leave_balance = (gaia == null) ? Convert.ToDouble("0") : gaia.Field<double?>("Annual Leave Balance"),

填充误差

对象引用未设置为对象的实例

如果使用下列代码来获得年假余额:

代码语言:javascript
复制
annual_leave_balance = (gaia["Annual Leave Balance"] == null) ? Convert.ToDouble("0") : gaia.Field<double>("Annual Leave Balance"),

var results = from bird in mssql_dataTable.AsEnumerable()
              join lion in dataTable.AsEnumerable() on bird.Field<Int32>("ExternalID") equals Convert.ToInt32(lion.Field<double>("External ID"))
              join gaia in Kiosk_mssql_dataTable.AsEnumerable() on bird.Field<Int32>("EmployeeID") equals Convert.ToInt32(gaia.Field<string>("StaffID"))
              into joinKioskEmp
              from gaia in joinKioskEmp.DefaultIfEmpty()
              select new
              {
                  employee_id = bird.Field<Int32>("EmployeeID"),
                  payrollnum = bird.Field<string>("PayrollNum"),
                  employee_name = (gaia != null) ? (gaia.Field<string>("First Name")+", "+gaia.Field<string>("Last Name")) : ((bird != null) ? (bird.Field<string>("FirstName")+", "+bird.Field<string>("Surname")) : ""),
                  //employee_name = (gaia != null) ? (gaia.Field<string>("First Name") + ", " + gaia.Field<string>("Last Name")) : "",
                  annual_leave_balance = (gaia["Annual Leave Balance"] == null) ? Convert.ToDouble("0") : gaia.Field<double>("Annual Leave Balance"),
                  _position = bird.Field<string>("position"),
                  external_id = bird.Field<Int32>("ExternalID"),
                  approver = lion.Field<string>("Approver"),
                  approver_email = lion.Field<string>("Approver Email Address")
              };
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-11-24 10:27:04

代码语言:javascript
复制
annual_leave_balance = (gaia["Annual Leave Balance"] == null) 
      ? Convert.ToDouble("0") : gaia.Field<double>("Annual Leave Balance")

首先,可以将Convert.ToDouble("0")替换为0d

第二,您没有像前面的行(gaia != null) ?那样检查null。

这就是问题所在吗?

票数 2
EN

Stack Overflow用户

发布于 2010-11-24 10:25:14

您可以使用Convert.DBNull

代码语言:javascript
复制
 annual_leave_balance = (gaia["Annual Leave Balance"] == Convert.DBNull) ? Convert.ToDouble("0") : gaia.Field<double>("Annual Leave Balance"),
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4265650

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档