Question

Je fermais un datareader ouvert à l'aide du 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

Mais je pense qu'il devrait être plus propre (et un peu plus rapide) d'utiliser le « Utilisation » VB mot-clé:

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

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

Est-ce que l'interface IDispose (nécessaire à l'aide) effectuer une proximité sur le DataReader?

Était-ce utile?

La solution

L'objet est disposé. Oui, cela ferme le DataReader.

Autres conseils

lecteur sera fermé, mais ce n'est pas nécessaire pour la connexion de base de données, car il est la superposer géré avec le pool de connexions ADO.NET. Cochez cette réponse pour plus d'informations: C # MySqlConnection ne se ferme pas

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top