2016-05-30 83 views
-1

image 1 我有一个错误,显示连接未关闭。
我甚至通过把一个最后但还没试过它不工作。数据库值在文本框中,如果选择Combobox

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    try 
    { 

     connection.Open(); 
     OleDbCommand command = new OleDbCommand(); 
     command.Connection = connection; 
     string query = "SELECT * FROM Dataaa WHERE FirstName='" + comboBox1.Text + "'"; 
     command.CommandText = query; 
     OleDbDataReader reader = command.ExecuteReader(); 
     while (reader.Read()) 
     { 
      txt_EID.Text = reader["EID"].ToString(); 
      textBox1.Text = reader["Firstname"].ToString(); 
      textBox2.Text = reader["LastName"].ToString(); 
      textBox3.Text = reader["ICNO"].ToString(); 
      textBox4.Text = reader["Address"].ToString(); 
      textBox5.Text = reader["Loan"].ToString(); 
      textBox6.Text = reader["Percent"].ToString(); 
      textBox7.Text = reader["Payback"].ToString(); 
      textBox8.Text = reader["StartDate"].ToString(); 
      textBox9.Text = reader["EndDate"].ToString(); 
      textBox10.Text = reader["Monthly"].ToString(); 
      textBox11.Text = reader["PaymentType"].ToString(); 
      textBox12.Text = reader["Remark"].ToString(); 

     } 
     connection.Close(); 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("error " + ex); 
    } 
+0

请将您的问题中的代码发布为TEXT。图像难以阅读,也无法创建代码来测试您的问题 – Steve

+0

如果您在OleDbConnection类型的全局变量上发生连接打开错误,则需要检查代码中忘记关闭该连接的每个部分(例如如果你输入一个catch块并忘记关闭连接) – Steve

+0

对于初学者,你应该总是关闭你的连接在finally块中。 –

回答

1

代替人工手动操作的Connection.close的,建立在“使用”块的连接:

using(var connection = new SqlConnection(...)) { OleDbCommand command = new OleDbCommand(); ........ }

这你不需要担心关闭连接。一旦使用块结束,连接也一样。

相关问题