executereader 要求已打开并可用的connection

private void button1_Click(object sender, EventArgs e)
{
SqlHelper.con.Open(); //这个是自己写的类
//里面就两句话
(
public static string connstring = "Data Source=.;Initial Catalog=students;Persist Security Info=True;User ID=sa;Password=Rootroot123";
public static SqlConnection con = new SqlConnection(connstring);
)

        string sql = "select * from student where sname = @sname";
        SqlCommand cmd = new SqlCommand(sql, SqlHelper.con);
        cmd.Parameters.AddWithValue("@sname", comboBox1.Text);

        SqlDataReader reader = cmd.ExecuteReader();
        while(reader.Read())
        {
            sid.Text = reader[0].ToString();
            name.Text = reader[1].ToString();
            sex.Text = reader[2].ToString();
            sclass.Text = reader[3].ToString();
            score.Text = reader[4].ToString();
        }
    }

只能点击按钮一次 不知道为什么

sql

1个回答

 private void button1_Click(object sender, EventArgs e)
{
SqlHelper.con.Open(); //这个是自己写的类
//里面就两句话
(
public static string connstring = "Data Source=.;Initial Catalog=students;Persist Security Info=True;User ID=sa;Password=Rootroot123";
public static SqlConnection con = new SqlConnection(connstring);
)
        string sql = "select * from student where sname = @sname";
        SqlCommand cmd = new SqlCommand(sql, SqlHelper.con);
        cmd.Parameters.AddWithValue("@sname", comboBox1.Text);

        SqlDataReader reader = cmd.ExecuteReader();
        while(reader.Read())
        {
            sid.Text = reader[0].ToString();
            name.Text = reader[1].ToString();
            sex.Text = reader[2].ToString();
            sclass.Text = reader[3].ToString();
            score.Text = reader[4].ToString();
        }
    }
SqlHelper.con.Close(); //加上这个,关闭connection
danielinbiti
danielinbiti 回复GeminiFang: 如果不麻烦,顺手采纳一下。
4 年多之前 回复
u013506772
GeminiFang 多谢了!
4 年多之前 回复
danielinbiti
danielinbiti 回复GeminiFang: 当然,你也可以判断是否打开状态con.State==ConnectionState.Open,如果打开着就不Open()也可以。
4 年多之前 回复
danielinbiti
danielinbiti 回复GeminiFang: 连接打开后没有关闭再次打开是会报错的。
4 年多之前 回复
u013506772
GeminiFang 谢谢。。 不过为什么啊
4 年多之前 回复
u013506772
GeminiFang 谢谢。。 不过为什么啊
4 年多之前 回复
danielinbiti
danielinbiti 按钮事件的最后加上就可以了
4 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问