繁体   English   中英

C# Where 子句中的强制转换异常

[英]Cast Exception in C# Where clause

自从我试图找出在这种情况下导致演员表异常的原因已经有一段时间了。 以下是我的代码。

var ratingTermDetails = dtRating.AsEnumerable()
    .Where(data => data.Field<int>("RATINGID") == ratingId)
    .FirstOrDefault();

dtRating 是一个从数据库(oracle)中填充的数据表。 数据库中 Ratingid 列的数据类型为 Integer 且该列不可为空。 变量 ratingId 也是 integer。

我不知道这对我有多大帮助,因为我以前从未见过类似的 Linq。 但据我了解,您是说 RATINGID 在数据库中是 int 并且它是主键?

那么这应该工作。

var ratingTermDetails = dtRating
    .Where(data => data.Field.RATINGID == ratingId)
    .FirstOrDefault();

正如@MarcGravell 所说,该变量正在 C# 中转换为 System.Decimal。 更改为我的代码后工作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM