Domanda

Ho usato per chiudere un DataReader aperto utilizzando il 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

Ma penso che dovrebbe essere più pulito (e un po 'più veloce) per utilizzare il "Uso" VB parola chiave:

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

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

Il dell'interfaccia IDispose (richiesto utilizzando) eseguire un Chiudere sul DataReader?

È stato utile?

Soluzione

L'oggetto viene smaltito. Sì, questo chiude il DataReader.

Altri suggerimenti

Reader sarà chiuso, ma questo non è necessario per la connessione al database underlaying perché è gestito con pool di connessioni ADO.NET. Controllare questa risposta per ulteriori informazioni: C # MySqlConnection non si chiude

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top