2013-06-12 3 views

ответ

4

Нет; соединение не будет закрыто, пока вы не установите соединение.

Однако, если вы пройдете CommandBehavior.CloseConnection, соединение будет закрыто.

+0

это нормально поставить 'r.Close();' после 'while {} 'инструкция? – DanielV

+0

нашел [извлечение данных с помощью DataReader (ADO.NET)] (https://msdn.microsoft.com/en-us/library/haa3afyz (VS.100) .aspx) глупый вопрос, хотя – DanielV

6
ExecuteReader(CommandBehavior.CloseConnection) 

Это закрывает соединение, когда DataReader имеет это close() метод называется (что происходит, когда метод dispose() вызывается через использование в using блока.

В идеале, вы должны использовать using блок с вашим SqlConnection (или вызвать dispose() вручную внутри блока finally), а не только для закрытия соединения, но и для освобождения ресурсов.