Maison >base de données >tutoriel mysql >Un bloc « Utilisation » ferme-t-il automatiquement une connexion SQL ouverte ?
La fin de l'utilisation ferme-t-elle une connexion SQL ouverte ?
Lors de l'utilisation d'un objet SQLConnection dans un bloc Using, il est courant de appelez explicitement la méthode Close() avant de quitter le bloc. Cependant, cela soulève la question : cette étape est-elle nécessaire ? La conclusion du bloc Using gère-t-elle automatiquement la fermeture de la connexion ?
Le comportement des blocs Using
Lorsqu'un objet est enveloppé dans un bloc Using, la méthode Dispose() est invoqué sur l'objet à la sortie du bloc. Dans le cas d'une SqlConnection, la méthode Dispose() effectue les actions suivantes :
Pourquoi appeler explicitement Close peut-être Inutile
Compte tenu du comportement de l'utilisation des blocs, il devient évident qu'appeler explicitement Close() est redondant. Le bloc Using invoquera automatiquement Dispose(), qui gérera la fermeture de connexion dans le cadre de sa routine.
Exemple de code
L'exemple de code suivant illustre le comportement :
using (var cn = new System.Data.SqlClient.SqlConnection()) { cn.Open(); // Do operations with commands and datareaders // Explicitly calling Close() is unnecessary // cn.Close(); }
En n'appelant pas explicitement Close() dans le bloc Using, nous garantissons que les ressources sont gérées et que la connexion est fermée automatiquement à la sortie du bloc Using. block.
Conclusion
En résumé, la fin d'un bloc Using gère la fermeture d'une SQLConnection ouverte. Appeler explicitement Close() est donc inutile et peut introduire une redondance dans le code.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!