Я знаю, что задавал похожий вопрос ранее. У меня только что возникла другая мысль.
Код: Выделить всё
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
}
}
}
}
Аргумент таков: поскольку объект SqlDataReader dr НЕ ЯВЛЯЕТСЯ НОВЫМ ОБЪЕКТОМ, КАК объекты соединения или команды, это просто ссылка, указывающая на cmd. ExecuteReader(), нужно ли мне поместить считыватель в метод using. (Основываясь на моем предыдущем сообщении, я понимаю, что любой объект, использующий IDisposable, должен быть помещен в using, а SQLDataReader наследуется от IDisposable, поэтому я нужно это поставить. Прав ли я в своем суждении?) Я просто в замешательстве, поскольку это не новый объект, вызовет ли это какие-либо проблемы при удалении объекта, который просто является ссылочным указателем на команду?
Подробнее здесь:
https://stackoverflow.com/questions/338 ... datareader