Когда мой сайт получает следующий бит кода, он падает с исключением следующим образом:
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", что я уже делаю.
Так может кто-нибудь предложить решение?