.NET MySql does “Using” closes the datareader?
-
01-10-2019 - |
문제
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
제휴하지 않습니다 StackOverflow