Pregunta

He utilizado para cerrar un DataReader abierto mediante el 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

Sin embargo, creo que debería ser más limpio (y un poco más rápido) para utilizar el "Uso" VB palabra clave:

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

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

¿La interfaz de IDispose (necesarias mediante el uso) realizará un cierre en el DataReader?

¿Fue útil?

Solución

El objeto se dispondrá. Sí, esto cierra el DataReader.

Otros consejos

Lector estará cerrada, pero esto no es necesario para la conexión a la base underlaying ya que se maneja con la agrupación de conexiones ADO.NET. Marque esta respuesta para más información: C # MySqlConnection no se cerrará

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top