私のウェブサイトが次のコードに到達すると、次のような例外が発生します。
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かどうかを確認する」ことを提案しているようです。これはすでに行っています。
それで、誰かが解決策を提案できますか?