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();
        }
    }

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

 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