Kiedy SqlCommand.ExecuteReader () zwróci wartość null?

Podczas korzystania z wywołaniaSqlCommand.ExecuteReader() metoda, ReSharper mówi mi, że mam możliwy wyjątek NullReference, gdy później używam obiektu SqlDataReader.

Tak więc z następującym kodem:

using (SqlConnection connection = GetConnection())
{
    using (SqlCommand cmd = connection.CreateCommand())
    {
        cmd.CommandText = ; //snip

        using (SqlDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())
            {
                //snip
            }
        }
    }
}

Thewhile (reader.Read()) linia jest podkreślona.

Moje pytanie brzmi: kiedy obiekt czytelnika byłby kiedykolwiek zerowy? Nigdy go nie spotkałem, a dokumentacja nie wspomina, że ​​może być. Czy powinienem sprawdzić, czy jest null lub czy można go zignorować?

I dlaczego ReSharper miałby myśleć, że może być zerowy, gdy na przykład pozwala mi użyć SqlCommand bez zalecania sprawdzenia czy wartość jest null? Domyślam się, że istnieje metoda na metodę ExecuteReader.

questionAnswers(5)

yourAnswerToTheQuestion