sql >> Base de Datos >  >> RDS >> Mysql

¿Por qué mi aplicación C# sigue recuperando datos de MySql sin usar connection.Open()?

Desde la intención de llamar a adapter.Fill(table); es recuperar datos de la base de datos. Espero que Fill El método abre la conexión si aún no lo está.

Solo necesitaría llamar explícitamente a Open si tiene la intención de operar en la connection directamente en lugar de a través de clases auxiliares como MySqlDataAdapter por ejemplo. Por supuesto, puedes abrirlo cuando quieras.

Sin embargo, te sugiero que pongas la conexión en un using declaración para asegurarse de que esté cerrado y desechado cuando haya terminado con él:

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