Domanda

Qual è il modo corretto di chiudere un battistrada dopo l'esecuzione di una query in un database MySql da un Windows Form in C #?

E 'una semplice apertura abbastanza vicino come questo?

conn.Open();

//querycode

conn.Close():
È stato utile?

Soluzione

Prova ad utilizzare:

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

Altri suggerimenti

va bene il modo in cui si sta facendo, si può anche avvolgere oggetto di connessione nel blocco using in questo modo:

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

(* vedi )

No, il codice nella sua domanda non è abbastanza buono. Se la query genera un'eccezione non si chiuderà () in modo tempestivo e sarà lasciato in sospeso fino a quando le comunicazioni garbage collector esso.

È necessario racchiudere l'oggetto in un blocco using come mostrato da altri o ad un minimo racchiudere in un try / finally struttura.

Le classi che utilizzano le risorse che è necessario per ripulire dopo di solito attuare il IDisposable di interfaccia. Ciò significa che fornisce una funzione chiamata Dispose () che può essere utilizzato per liberare risorse.

Per gli oggetti usa e getta, è possibile utilizzare il con dichiarazione:

using ( SomeDisposableClass c = new SomeDisposableClass() ) {

    // ... your code here

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

Se la classe è correttamente codificato, si deve liberare tutte le risorse - sia esso una connessione al database, un handle di file aperti, ecc - nella sua funzione Dispose ().

Ciò significa che il MySQL probabilmente disconnette dal database in Dispose (), quindi probabilmente non c'è bisogno di chiamare in modo esplicito c.Close () -. Ma sempre controllare la documentazione per essere sicuri

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