Mysql
 sql >> Database >  >> RDS >> Mysql

Perché la mia applicazione C# recupera ancora i dati da MySql senza utilizzare connection.Open()

Poiché l'intenzione di chiamare adapter.Fill(table); è per recuperare i dati dal database, mi aspetto fortemente che il Fill il metodo apre la connessione se non lo è già.

Dovresti solo chiamare esplicitamente Open se intendi operare sulla connection direttamente invece che tramite classi di supporto come MySqlDataAdapter Per esempio. Ovviamente puoi aprirlo quando vuoi.

Ti suggerirei, tuttavia, di inserire la connessione in un using dichiarazione per assicurarti che sia chiuso e smaltito quando hai finito con esso:

using (var connection = new MySqlConnection(conString))
{
    DataTable table = new DataTable();
    MySqlDataAdapter adapter = new MySqlDataAdapter("SELECT * FROM users", connection);
    adapter.Fill(table);
    dataGridView1.DataSource = table; 
}
// Now you are sure the connection is closed and being properly garbage collected