想实现按班级名称查询班级信息的功能,btnSearch开始单击挺正常,后来单击没反应,各种调试,新建按钮都无效,求高手指点?
       private void btnSearch_Click(object sender, EventArgs e)
        {
            //获取待搜索的信息
            string name = txtClassName.Text.Trim();
            //连接Sql server 数据库
            SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=gsInfo;Integrated Security=True");
            string sql = String.Format("select * from T_classInfo where 班级名称='{0}' ", name);
            try
            {
                con.Open();//打开与数据库的链接
                SqlCommand cmd = new SqlCommand(sql, con);//定义Command对象
                SqlDataReader reader = cmd.ExecuteReader();
                //string className = reader.GetString(reader.GetOrdinal("班级名称"));
                if (reader.Read())
                {
                    string classShortName = reader.GetString(reader.GetOrdinal("班级简称"));
                    string grade = reader.GetString(reader.GetOrdinal("年级"));
                    string classNo = reader.GetString(reader.GetOrdinal("班级编号"));
                    string classNumber = reader.GetString(reader.GetOrdinal("人数"));
                    string teacher = reader.GetString(reader.GetOrdinal("辅导员"));
                    txbClassName.Text = name;
                    txbShortName.Text = classShortName;
                    txbGrade.Text = grade;
                    txbClassNumber.Text = classNo;
                    txbNo.Text = classNumber;
                    txbTeacher.Text = teacher;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
            }
            finally
            {
                con.Close();
            }

解决方案 »

  1.   

     先MessageBox.Show("xxx");测试一下。。?如果不行试着重启一下VS,
      

  2.   

    btnSearch_Click有没有绑定到按钮的事件可能是SqlDataReader没有即使关闭的问题
    try
                {
                    con.Open();//打开与数据库的链接
                    MessageBox.Show("数据库打开正常");
                    SqlCommand cmd = new SqlCommand(sql, con);//定义Command对象
                    SqlDataReader reader = cmd.ExecuteReader();
                    //string className = reader.GetString(reader.GetOrdinal("班级名称"));
                    if (reader.Read())
                    {
                        string classShortName = reader.GetString(reader.GetOrdinal("班级简称"));
                        string grade = reader.GetString(reader.GetOrdinal("年级"));
                        string classNo = reader.GetString(reader.GetOrdinal("班级编号"));
                        string classNumber = reader.GetString(reader.GetOrdinal("人数"));
                        string teacher = reader.GetString(reader.GetOrdinal("辅导员"));
                        txbClassName.Text = name;
                        txbShortName.Text = classShortName;
                        txbGrade.Text = grade;
                        txbClassNumber.Text = classNo;
                        txbNo.Text = classNumber;
                        txbTeacher.Text = teacher;
                    }
                    reader.Close();
                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.ToString());
                }
                finally
                {
                    con.Close();
                }
      

  3.   

    SqlDataReader没有关闭的缘故
    加上这个reader.Close();
      

  4.   


    请问你那个开始有效后来没有效是什么意思?
    我怀疑查出来没有数据,,断点调试把sql到数据库里面查查看