首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

自己做的登陆窗口不管小弟我如何登陆都是账号密码异常

2012-09-13 
自己做的登陆窗口不管我怎么登陆都是账号密码错误。这是登陆窗口的代码private void button1_Click(object

自己做的登陆窗口不管我怎么登陆都是账号密码错误。
这是登陆窗口的代码
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);
[解决办法]

探讨
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+"'";
[解决办法]
探讨
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 ……

[解决办法]
不要养成拼接字符串这种习惯

用参数

至于为什么 自己百度吧
------解决方案--------------------


跟着你的sql 放在查询分析器里,执行一下呗
[解决办法]
参数错了,不然就拼接字符串,不然就是找账号为idnum密码为pas的用户
[解决办法]
string sqlstr =string.Formart( "USE gcgl SELECT yhid,yhmm FROM yh WHERE yhid='{0}'and yhmm='{1}' ",idnum,pas);

热点排行