从DataGridView检索数据到TEXTBOXS

时间:2018-05-10 16:56:43

标签: c# sql

我有这段代码:

private void dataGridView2_CellClick(object sender,DataGridViewCellEventArgs e)
{
    cmd.Connection = cn;
    cmd.CommandText = "select * from subdiseases where id_subdiss=" + dataGridView2.SelectedRows[0].Cells[0].Value;
    if (cn.State == ConnectionState.Open)
    { 
        cn.Close(); 
    }
    cn.Open();
    SqlDataReader dr4 = null;
    dr4 = cmd.ExecuteReader() ;
    while (dr4.Read())
    {
        a = dr4["id_diss"].ToString();
        comboBox1.Text = dr4["name_diss"].ToString();
        namesub.Text = dr4["name_subdiss"].ToString();
        namedet.Text = dr4["details"].ToString();
    }
    dr4.Close();
}

我收到此错误:

  

读取器关闭时无效尝试调用Read。

1 个答案:

答案 0 :(得分:1)

正如您在帖子下面的评论中提到的那样,请确保您在发布的方法上出现此错误,因为它看起来很好。通常,如果您在循环中关闭了阅读器,或者您尝试在已关闭的数据库连接上读取它,则会出现此错误。您可能希望尝试在开始时打开一次连接并在结束时关闭一次,删除您的开放式关闭验证,尽管这不应该是问题。