开发者

.NET MySql does "Using" closes the datareader?

开发者 https://www.devze.com 2023-01-13 04:09 出处:网络
I used to close an open datareader using the try/catch/finally block: 开发者_如何转开发 Dim dr As MySqlDataReader = Nothing

I used to close an open datareader using the try/catch/finally block:

开发者_如何转开发 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

But I think it should be cleaner (and somewhat faster) to use the "Using" VB keyword:

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

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

Does the IDispose interface (required by Using) perform a Close on the DataReader?


The object will be disposed. Yes, this closes the DataReader.


Reader will be closed, but this is not necessary for underlaying database connection because it is managed with ADO.NET connection pool. Check this answer for more information: C# MySqlConnection won't close

0

精彩评论

暂无评论...
验证码 换一张
取 消