Question

Quelle est la bonne façon de fermer une bande de roulement après l'exécution d'une requête sur une base de données MySql d'une forme de fenêtres en C #?

est un simple ouvrir fermer assez comme ça?

conn.Open();

//querycode

conn.Close():
Était-ce utile?

La solution

Essayez d'utiliser:

using(MySqlConnection conn = new MySqlConnection(connString))
{
    conn.Open();
} // conn is automatically closed and disposed at the end of the using block

Autres conseils

il est bien la façon dont vous le faites, vous pouvez également envelopper objet de connexion dans le bloc de using comme ceci:

using (var con = new MySqlConnection(/*connection string*/))
{
    con.Open();
    //do stuff
    // con.Close(); //don't need this it will be closed automatically* 
}

(* voir )

Non, le code dans votre question n'est pas assez bon. Si votre requête génère une exception que vous ne fermerons pas () en temps opportun et il sera laissée en suspens jusqu'à ce que les avis de garbage collector il.

Vous devez joindre l'objet dans un bloc using comme indiqué par d'autres ou à un strict minimum EnCase dans un essai / structure finalement.

Les classes qui utilisent les ressources que vous avez besoin pour nettoyer après la mise en œuvre habituellement IDisposable interface. Cela signifie qu'il fournit une fonction appelée Dispose () qui peut être utilisé pour libérer des ressources.

Pour les objets à usage unique, vous pouvez utiliser le avec Déclaration:

using ( SomeDisposableClass c = new SomeDisposableClass() ) {

    // ... your code here

} // c.Dispose() automatically called here, freeing up resources

Si la classe est correctement codé, il faut libérer les ressources - que ce soit une connexion de base de données, un descripteur de fichier ouvert, etc - dans sa fonction Dispose ().

Cela signifie que MySQL se déconnecte probablement de la base de données dans Dispose (), de sorte que vous n'avez probablement pas besoin d'appeler explicitement c.Close () -. Mais toujours vérifier la documentation pour être sûr

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top