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