Wiem, że wcześniej zadałem pokrewne pytanie. Właśnie miałem inną myśl.przy użyciu SQLDataReader
using (SqlConnection conn = new SqlConnection('blah blah'))
{
using(SqlCommand cmd = new SqlCommand(sqlStatement, conn))
{
conn.open();
// *** do I need to put this in using as well? ***
SqlDataReader dr = cmd.ExecuteReader()
{
While(dr.Read())
{
//read here
}
}
}
}
Argumentem jest to, że: Ponieważ obiekt SqlDataReader
dr
Nie jest to nowy obiekt np połączenia lub polecenia obiektów, jego po prostu odniesienie wskazując metody cmd.ExecuteReader()
, muszę umieścić czytnik wewnątrz using
. (Teraz na podstawie mojego poprzedniego posta, rozumiem, że każdy obiekt, który używa IDisposable
musi być umieszczony w using
, a SQLDataReader
dziedziczy po IDisposable
, więc muszę go umieścić. Czy mam rację w moim osądzie?) Jestem po prostu zdezorientowany, ponieważ nie jest to nowy obiekt, czy spowodowałby jakiekolwiek problemy z wyrzuceniem obiektu, który jest po prostu wskaźnikiem odniesienia do polecenia?
Dziękujemy
"cmd.ExecuteReader" jest rodzajem metody odniesienia. "cmd.ExecuteReader()" (nawias zawiadomień) to wywołanie metody. –