Vì ý định gọi adapter.Fill(table);
là lấy dữ liệu từ cơ sở dữ liệu mà tôi rất mong đợi rằng Fill
phương thức mở kết nối nếu nó chưa có.
Bạn chỉ cần gọi Open
một cách rõ ràng nếu bạn định hoạt động trên kết nối connection
trực tiếp thay vì thông qua các lớp trợ giúp như MySqlDataAdapter
Ví dụ. Tất nhiên, bạn có thể mở nó bất cứ khi nào bạn muốn.
Tuy nhiên, tôi khuyên bạn nên đặt kết nối trong một using
tuyên bố để đảm bảo rằng nó đã được đóng lại và xử lý khi bạn hoàn thành việc đó:
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