Вы можете использовать условный оператор здесь, чтобы установить его в нуль, если значение равно DBNull.Value
, или в противном случае значение, отличное от нуля:
Ap1ExamTaken = dr["AP1_ExamTaken"] == DBNull.Value ? null : (bool?) dr["AP1_ExamTaken"];
Обратите внимание, что это вызовет исключение, если dr["AP1_ExamTaken"]
не является логическим типом, не DBNull, который, как я подозреваю, - это то, что вам нужно.
Вы могли бы записать его более компактно, как:
Ap1ExamTaken = dr["AP1_ExamTaken"] as bool?
... но тогда вы получите нулевое значение, если значением будет какой-то другой тип (строка, целое число и т. Д.), О котором я бы вообще встревожился. (Если мои данные не имеют ожидаемой формы, я хочу знать как можно скорее.)