Frage

Ich habe eine offene Datareader mit der try / catch / finally-Block zu schließen:

 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

Aber ich denke, es ist sauberer sein sollte (und etwas schneller), um die „Verwendung“ VB Schlüsselwort zu verwenden:

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

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

Ist die IDispose Schnittstelle (erforderlich mithilfe) durchführen Schließen auf dem Datareader?

War es hilfreich?

Lösung

Das Objekt wird entsorgt werden. Ja, schließt dies das Datareader.

Andere Tipps

wird Reader geschlossen werden, aber dies ist nicht erforderlich, Unterlegen Datenbank-Verbindung, weil sie mit ADO.NET Connection-Pool verwaltet werden. Überprüfen Sie diese Antwort für weitere Informationen: C # MySqlConnection nicht schließen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top