Если результата нет, ваш запрос может вернуть null
, поэтому в общем случае вы должны его проверить. Например.:
SELECT TOP 1 Col1 FROM TABLE WHERE ...
Вышеупомянутый запрос может вернуть:
null
, если нет строк, соответствующих предложению WHERE
DBNull.Value
, если первая совпадающая строка имеет значение NULL в столбце Col1
- иначе ненулевое значение
Если ваш запрос таков, что вы можете гарантировать, что всегда будет результат, вам нужно только проверить DBNull. Например.
SELECT MAX(Col1) FROM TABLE WHERE ...
Вышеупомянутый запрос вернет DBNull.Value, если нет строк, соответствующих предложению WHERE. Он никогда не возвращает null
.
И, конечно, есть некоторые случаи, когда вы можете гарантировать ненулевой результат, и в этом случае вам не нужно проверять на null или DBNull. Например.
SELECT COUNT(Col1) FROM TABLE WHERE ...
SELECT ISNULL(MAX(Col1),0) FROM TABLE WHERE ...
Вышеупомянутый запрос всегда будет возвращать ненулевое значение. Он никогда не возвращает null
или DBNull.Value
.
person
Joe
schedule
15.01.2014