LINQ查询中出现InvalidCastException
本文关键字:InvalidCastException 查询 LINQ | 更新日期: 2023-09-27 18:19:58
对于这个LINQ查询,我得到了以下异常:
(from row in ds.Tables[0].AsEnumerable()
where row.Field<string>("Dept_line_code") == DeptCode &&
row.Field<string>("Skill_Name") == skill &&
row.Field<string>("Acct_Code") == account && row.Field<string>("Location") == dtNewTable.Rows[intRow]["Location"].ToString()
select row.Field<int>("Presently_Available") == null ? 0 : row.Field<int>("Presently_Available")
).FirstOrDefault();
异常信息:
异常类型:InvalidCastException
异常消息:无法将DBNull.Value强制转换为类型"System.Int32"。请使用可为Null的类型。
我不知道可为null的类型,也不知道如何使用可为null类型来克服这个异常。
您必须让int接受null值=>int?
row.Field<int?>("Presently_Available") == null ? 0 : row.Field<int>("Presently_Available") ;
这是空类型的链接
select row.Field<int?>("Presently_Available")
将row.Field<int>
更改为row.Field<int?>