उपरोक्त सभी उदाहरण एक ही कमजोरी को दर्शाते हैं। आप कथन का उपयोग करके का उपयोग नहीं करते हैं जो कनेक्शन और अन्य डिस्पोजेबल वस्तुओं की संपत्ति को बंद करने और निपटाने को सुनिश्चित करेगा। यदि आपके एक या अधिक कथन अपवाद फेंकते हैं, तो कनेक्शन बंद करने वाला कोड निष्पादित नहीं होता है और आप बहुत अधिक कनेक्शन त्रुटि के साथ समाप्त हो सकते हैं
उदाहरण के लिए
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)