Od záměru volat adapter.Fill(table); je získat data z databáze, velmi bych očekával, že Fill metoda otevře připojení, pokud ještě není.
Stačí explicitně zavolat Open pokud máte v úmyslu pracovat na connection přímo namísto pomocí pomocných tříd, jako je MySqlDataAdapter například. Můžete jej samozřejmě otevřít, kdykoli budete chtít.
Navrhoval bych však, abyste připojení vložili do using prohlášení, abyste zajistili, že bude uzavřen a zlikvidován, až s ním skončíte:
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