页面上有一个button1; 两个textbox, 分别命名为uname,pwd, 也就是一个用户登陆的页面,有如下代码      string a = uname.Text;
        string mystring = "server=localhost;database=course;Trusted_Connection=yes";
        SqlConnection conn = new SqlConnection(mystring);
        conn .Open ();
        string sel = "select * from grade where uid=" + a;
        SqlCommand comm = new SqlCommand(sel, conn);
        SqlDataReader dr = comm.ExecuteReader();
        while (dr.Read())
        {
            if (uname.Text==dr["uid"].ToString ())
            {
                if (pwd.Text == dr["pwd"].ToString())
                    Label1.Text = dr["name"].ToString ();
            }
        }
说明:在数据库course中有一个名为grade的表,表中有一列为uid,一列为pwd,有条记录的uid 值为xiaoyang,pwd值为24549984
运行时,在uname中输入xiaoyang,在pwd中输入24549984,总是出错,出错信息为“列名xiaoyang无效,”这是怎么回事呢

解决方案 »

  1.   

    "select * from grade where uid='" + a +" ' ";
      

  2.   

    string sel = "select * from grade where uid=" + a;
    modify to string sel = "select * from grade where uid='" + a+"'";
      

  3.   

    你的uid是字符串的类型,在sql中,字符串类型的数据是要加上单引号的,所以,改成
    string sel = "select * from grade where uid='" +a+"'";
    才可以,不过最好在前边的那句
    string a = uname.Text;
    改成string a=uname.Text.Trim();
    吧,去掉多余的空格,避免不必要的麻烦,我吃过这种苦头,所以现在只要是对字符串操作,只要没有特殊要求,都加上trim();
      

  4.   

    你装的Sql server是不是windows 集成的,如果是的话,就要连接字符串中加Integrated Security=SSPI;不是的话,在连接字符串上要加上连接到数据库的用户及密码如:UID="账号";PWD="密码";
      

  5.   

    运行后, label1中什么都没有显示啊
      

  6.   

    该说的.楼上几位都说完了,郁闷的人还是郁闷?补一下你的CONN. OPEN()后没有conn.Close()的吗?
    要注意