当我的网站到达以下代码段时,它会因为以下异常而崩溃:
System.InvalidCastException: 无法将对象从 DBNull 转换为其他类型。
为了简洁起见,我只展示相关代码(这是一个我收到的超过4000行的文件)。
System.InvalidCastException: 无法将对象从 DBNull 转换为其他类型。
为了简洁起见,我只展示相关代码(这是一个我收到的超过4000行的文件)。
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”,而我已经在这样做了。
那么有人能提出解决方案吗?
dto.Stage=1;
之前加上throw
,那么DBNull
异常会在其他地方发生。 :| 该死的堆栈跟踪把我引入了错误的方向。 - TZHX