.NET MySql "Использование" закрывает хранилище данных? - PullRequest
2 голосов
/ 27 августа 2010

Я использовал для закрытия открытого хранилища данных, используя блок try / catch / finally:

 Dim dr As MySqlDataReader = Nothing
 Try
   dr = DBConnection.callReadingStoredProcedure("my_sp")

 Catch ex As Exception
   ' the caller will handle this
   Throw ex
 Finally
   If dr IsNot Nothing Then dr.Close()
 End Try

Но я думаю, что должно быть чище (и несколько быстрее) использовать ключевое слово "Using" VB:

Using dr As MySqlDataReader = DBConnection.callReadingStoredProcedure("my_sp")

End Using
'   dr is surely disposed, but is it closed? 

Интерфейс IDispose (необходимый для использования) выполняет закрытие DataReader?

Ответы [ 2 ]

7 голосов
/ 27 августа 2010

Объект будет утилизирован.Да, это закрывает DataReader.

0 голосов
/ 23 апреля 2014

Считыватель будет закрыт, но это не обязательно для нижележащего соединения с базой данных, поскольку оно управляется с помощью пула соединений ADO.NETПроверьте этот ответ для получения дополнительной информации: C # MySqlConnection не закроется

...