Когда SqlCommand.ExecuteReader () вернет значение null?
При использовании вызова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())
линия подчеркнута.
Мой вопрос: когда объект читателя будет нулевым? Я никогда не сталкивался с этим, и документация не упоминает, что это могло бы быть. Должен ли я проверять, является ли он пустым или его можно игнорировать?
И почему бы ReSharper подумать, что он может быть нулевым, если, например, он позволяет мне использовать SqlCommand без рекомендации проверки его на нулевое значение? Я предполагаю, что есть атрибут в методе ExecuteReader.