Tất cả các ví dụ trên đều cho thấy cùng một điểm yếu. Bạn không sử dụng câu lệnh sử dụng điều đó sẽ đảm bảo việc đóng và xử lý kết nối cũng như các đồ vật dùng một lần khác đúng cách. Nếu một hoặc nhiều câu lệnh của bạn đưa ra ngoại lệ, mã đóng kết nối sẽ không được thực thi và bạn có thể kết thúc bằng lỗi quá nhiều kết nối
Ví dụ
string commandLine = "SELECT * FROM Table WHERE active=1";
commandLine = commandLine.Remove(commandLine.Length - 3);
using(MySqlConnection connect = new MySqlConnection(connectionStringMySql))
using(MySqlCommand cmd = new MySqlCommand(commandLine, connect))
{
connect.Open();
using(MySqlDataReader msdr = cmd.ExecuteReader())
{
while (msdr.Read())
{
//Read data
}
}
} // Here the connection will be closed and disposed. (and the command also)