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