读书人

自己做的登陆窗口不管小弟我如何登陆都

发布时间: 2012-09-13 09:51:53 作者: rapoo

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

读书人网 >C#

热点推荐