问题描述
privatevoidbutton1_Click(objectsender,EventArgse){stringsqlstring="server=localhost;database=caowen;IntegratedSecurity=SSPI;PersistSecurityInfo=false";SqlConnectiona=newSqlConnection(sqlstring);a.Open();MessageBox.Show("连接数据库成功");SqlCommandb=newSqlCommand("select*fromloadwhereuser='textBox1.Text'andpassword='textBox2.Text'",a);SqlDataReaderc=b.ExecuteReader();if(!c.Read())//if(this.textBox1.Text.Equals(c["user"].ToString())&&this.textBox2.Text.Equals(c["password"].ToString())){MessageBox.Show("用户或密码错误!");}//if(!this.textBox1.Text.Equals(c["user"].ToString())&&!this.textBox2.Text.Equals(c["password"].ToString()))if(c.Read()){MessageBox.Show("登陆成功!");}c.Close();}
解决方案
解决方案二:
跟踪一下,把错误信息贴出来,你光贴代码看不出来错误的
解决方案三:
"select*fromloadwhereuser='textBox1.Text'andpassword='textBox2.Text'",a)请原谅我的无知……你这是什么SQL……"select*fromloadwhereuser='“+textBox1.Text+”'andpassword='“+textBox2.Text”'"
解决方案四:
试试这个SqlCommandb=newSqlCommand("select*fromloadwhereuser='“+textBox1.Text+”'andpassword='“+textBox2.Text+”'",a);SqlDataReaderc=b.ExecuteReader();if(c.Read()){MessageBox.Show("登陆成功!");}c.Close();
不过一般不像你这么写,ado.net提供了sqlparam来作为查询的参数,你这么写容易被Sql注入攻击,建议找本教程认真看看
解决方案五:
能运行窗体,但老是显示用户或密码错误!
解决方案六:
引用4楼lisaer1的回复:
能运行窗体,但老是显示用户或密码错误!
那就是你sql没写对,用这个看看"select*fromloadwhereuser='“+textBox1.Text+”'andpassword='“+textBox2.Text+”'"
解决方案七:
改了,还是不行啊
解决方案八:
有木有可能是数据库表的问题呢,我检查了没错啊
解决方案九:
引用7楼lisaer1的回复:
有木有可能是数据库表的问题呢,我检查了没错啊
引用2楼starfd的回复:
"select*fromloadwhereuser='textBox1.Text'andpassword='textBox2.Text'",a)请原谅我的无知……你这是什么SQL……"select*fromloadwhereuser='"+textBox1.Text+"'andpassword='"+textBox2.Text+""
都给你写了你的查询SQL不对,而且也给了你正确的,你还在纠结……
解决方案十:
g关键是改了还不对啊
解决方案十一:
你编译通过了么?你把sql在数据库里执行看下有报错么
解决方案十二:
数据库里面的用户名和密码是否有空格,直接把SQL语句放到SQLSERVER里面执行下看看能不能查到数据。
解决方案十三:
放在数据库软件里能查到啊
解决方案十四:
解决了,谢谢大家的热情帮助啊