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.