当我的网站进入以下代码时,它会出现以下异常:
System.InvalidCastException:对象不能从 DBNull 转换为其他类型。
为简洁起见,我只展示了相关代码(这是我得到的 4000+ LOC 文件)。
if (dr["STAGE"] is DBNull)
{
dto.Stage = 1; // This is the line throwing the exception, according to stack trace
}
else
{
dto.Stage = Convert.ToInt32(dr["STAGE"]);
}
在这里,dr
是一个 DataRow 对象,它是对数据库的查询结果,dto
是一个只包含一些属性的基本类,它是其中dto.Stage
的一个int
成员。
我查看了具有相同错误消息的其他问题,但其中大多数似乎建议“检查它是否为 DBNull”,我已经在这样做了。
那么有人可以提出解决方案吗?