Как прочитать ноль для нулевых значений - PullRequest
1 голос
/ 01 мая 2019

Я пытаюсь прочитать обнуляемые значения из базы данных.Прямо сейчас мой код преобразовывает нулевые значения в ложные.Как я могу изменить свой код, чтобы разрешить нулевые значения?

Ap1ExamTaken = dr["AP1_ExamTaken"] != DBNull.Value && Convert.ToBoolean(dr["AP1_ExamTaken"]),

Я хотел бы, чтобы значения, которые являются нулевыми, отображались как нулевые, а не как ложные.

1 Ответ

3 голосов
/ 01 мая 2019

Вы можете использовать условный оператор здесь, чтобы установить его в нуль, если значение равно DBNull.Value, или в противном случае значение, отличное от нуля:

Ap1ExamTaken = dr["AP1_ExamTaken"] == DBNull.Value ? null : (bool?) dr["AP1_ExamTaken"];

Обратите внимание, что это вызовет исключение, если dr["AP1_ExamTaken"] не является логическим типом, не DBNull, который, как я подозреваю, - это то, что вам нужно.

Вы могли бы записать его более компактно, как:

Ap1ExamTaken = dr["AP1_ExamTaken"] as bool?

... но тогда вы получите нулевое значение, если значением будет какой-то другой тип (строка, целое число и т. Д.), О котором я бы вообще встревожился. (Если мои данные не имеют ожидаемой формы, я хочу знать как можно скорее.)

...