Quando SqlCommand.ExecuteReader () retornaria null?
Ao usar a chamadaSqlCommand.ExecuteReader()
método, ReSharper me diz que eu tenho uma possível exceção NullReference quando eu uso o objeto SqlDataReader depois.
Então, com o seguinte código:
using (SqlConnection connection = GetConnection())
{
using (SqlCommand cmd = connection.CreateCommand())
{
cmd.CommandText = ; //snip
using (SqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
//snip
}
}
}
}
owhile (reader.Read())
a linha está sublinhada.
Minha pergunta é quando o objeto do leitor nunca seria nulo? Eu nunca encontrei e a documentação não menciona que poderia ser. Devo verificar se é nulo ou seguro ignorar?
E por que o ReSharper acha que poderia ser nulo, quando, por exemplo, ele me permite usar o SqlCommand sem recomendar que seja verificado por null? Eu acho que há um atributo no método ExecuteReader.