web-dev-qa-db-fra.com

Un bloc utilisant fermera-t-il une connexion à une base de données?

using (DbConnection conn = new DbConnection())
{
    // do stuff with database
}

Le bloc using appellera-t-il conn.Close()?

41
Craig Johnston

Oui, il sera; l'implémentation de DbConnection.Dispose() appelle Close() (ainsi que ses implémentations dérivées).

58
BoltClock

Oui - http://msdn.Microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.close.aspx

edit: de Microsoft: "La connexion est automatiquement fermée à la fin du bloc d'utilisation."

7
vlad259

Un bloc using assurera la destruction de l'objet DbConnection en appelant la méthode Dispose(). La méthode Dispose() appellera à son tour la méthode Close() et devra attendre qu'elle termine la fermeture de la connexion à la base de données.

6
Roman

sûrement oui car il disposera de la connexion et avant de disposer la logique interne de la connexion appelle la fermeture.

5
Davide Piras