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类型来克服这个异常。

LINQ查询中出现InvalidCastException

您必须让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?>

相关文章:
  • 没有找到相关文章