自己做的登陆窗口不管我怎么登陆都是账号密码错误。
这是登陆窗口的代码
private void button1_Click(object sender, EventArgs e)
         {
             string idnum = AccouTextBox.Text;
             string pas = PassTextBox.Text;
             string sqlstr = "USE gcgl SELECT yhid,yhmm FROM yh WHERE yhid='idnum'and yhmm='pas' ";
             newname.BaseFf baseff = new gogla.BaseFf();
             SqlDataReader sqlread = baseff.getread(sqlstr);
             string dd = sqlread.Read().ToString();
            MessageBox.Show(dd);//这里永远出来的都是  false
             if (sqlread.HasRows)
                 MessageBox.Show("登陆成功");
             else
             {
                 MessageBox.Show("账户密码错误,请从新登陆");
                 //AccouTextBox.Text = "";
                 //PassTextBox.Text = "";
             }
有一点我确定 ,数据库一定是连上的。如果我改了上面的SQL语句会报错。
数据库中的表中也是有数据的。账号密码都是12345678
但是输进去都是账户密码错误,请从新登陆。
下面是公共的代码
class BaseFf
     {
             //SqlConnection getcon();//数据库连接函数
             //void DataCz(string Czstr);//执行SQL语句插入,删除。
             //DataSet getData(string comTex,string conn);//执行SQL语句,修改。
             //SqlDataReader getread(string sqlstr);//数据读取
         public SqlConnection getcon()
         {
             string connectstr = "Data Source=localhost; Initial Catalog=gcgl;"
             + "Persist Security Info=True; User ID=sa; Password=123456";
             SqlConnection myConn = new SqlConnection(connectstr);
             return myConn;
         }
         public SqlDataReader getread(string sqlstr)
         {
             SqlConnection sqlcon = this.getcon();
             SqlCommand sqlcom = new SqlCommand(sqlstr, sqlcon);
             sqlcon.Open();
             SqlDataReader sqlreader = sqlcom.ExecuteReader(CommandBehavior.CloseConnection);         
             return sqlreader;
         }
求大家给我看看。
------解决方案--------------------WHERE yhid='idnum'and yhmm='pas' ;你这里这样写就已经错了,账号永远是idnum,密码永远是pas,当字符串处理了
用占位符吧!
string sqlstr =string.Formart( "USE gcgl SELECT yhid,yhmm FROM yh WHERE yhid='{1}'and yhmm='{2}' ",idnum,pas);
------解决方案--------------------
------解决方案--------------------string sqlstr = "USE gcgl SELECT yhid,yhmm FROM yh WHERE yhid='idnum'and yhmm='pas' ";
出错了 textbox内的值未被引用过来 按照你的方法可以改为
string sqlstr = "USE gcgl SELECT yhid,yhmm FROM yh WHERE yhid='"+idnum+"'and yhmm='"+pas+"'";
------解决方案--------------------
------解决方案--------------------不要养成拼接字符串这种习惯
用参数
至于为什么 自己百度吧
------解决方案--------------------