При использовании метода SqlCommand.ExecuteReader()
ReSharper сообщает мне, что у меня есть возможное исключение NullReference, когда я потом использую объект SqlDataReader.
Итак, со следующим кодом:
using (SqlConnection connection = GetConnection())
{
using (SqlCommand cmd = connection.CreateCommand())
{
cmd.CommandText = ; //snip
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
//snip
}
}
}
}
Строка while (reader.Read())
подчеркнута.
Мой вопрос в том, когда объект-читатель будет иметь значение null? Я никогда не сталкивался с этим, и в документации не упоминается, что это может быть. Должен ли я проверять, является ли оно нулевым или безопасно ли игнорировать?
И почему ReSharper думает, что это может быть null, когда, например, он позволяет мне использовать SqlCommand, не рекомендуя его проверять на нуль? Я предполагаю, что есть атрибут метода ExecuteReader.