Comment fermer une OracleConnection dans .NET
Dire que j'ai ces deux objets:
OracleConnection connection = new OracleConnection(connectionString);
OracleCommand command = new OracleCommand(sql, connection);
Pour fermer la connexion ou de l'Oracle, dois-je appeler la commande.Dispose(), connexion.Dispose(), ou les deux?
Est-ce assez bon:
using(connection)
{
OracleDataReader reader = cmd.ExecuteReader();
// whatever...
}
source d'informationauteur Mike Comstock | 2009-03-30
Vous devez vous connecter pour publier un commentaire.
Si elle met en œuvre IDisposable, et si vous le créer, puis le mettre dans un bloc using.
Les deux réponses sont assez bien sur la cible. Vous voulez toujours à l'appel .Dispose() sur tout IDisposeable objet. En les enveloppant dans une "aide" vous haut le compilateur pour toujours impliment un try/finialy bloc pour vous.
1 point de la note, si vous voulez éviter la nidification, vous pouvez écrire le même code comme ceci:
Ce est assez bon. à l'aide de la déclaration de l'envelopper les disposer déclaration, de sorte que même si l'exception est levée, vous êtes en sécurité, c'est ma manière préférée de disposer de la ressource.
Je pense que par l'utilisation de "l'aide", vous demander au compilateur d'injecter un bloc try ... finally , et enfin le bloc, elle va fermer le jetable objet pour vous.
using
de s'assurer que votre connexion est fermée. Vous pouvez également passer enCommandBehavior.CloseConnection
à votre commande duExecuteReader
méthode pour la fermer avant deDispose
est appelé.