问题描述
SqlConnectionconn=newSqlConnection("server=localhost;database=taoj;uid=xa;pwd=xa");conn.Open();stringsql="select*fromregeditwhereusername='"+this.textBox1.Text+"'anduserpassword="+"'"+this.textBox2.Text+"'";SqlCommandcmd=newSqlCommand(sql,conn);这样可以正常连接数据库,但是由于sql语句的单引号比较麻烦我把语句修改成SqlConnectionconn=newSqlConnection("server=localhost;database=taoj;uid=xa;pwd=xa");conn.Open();SqlCommandcmd=newSqlCommand();cmd.Connection=conn;cmd.CommandText="select*fromregeditwhereusername='this.textBox1.Text'anduserpassword='this.textBox2.Text'";这样就查询不出结果SqlConnectionconn=newSqlConnection("server=localhost;database=taoj;uid=xa;pwd=xa");conn.Open();SqlCommandcmd=newSqlCommand("select*fromregeditwhereusername='this.textBox1.Text'anduserpassword='this.textBox2.Text'";,conn);这样也不行,不知道为什么?
解决方案
解决方案二:
后面的语句大概是这样SqlDataReaderdr=cmd.ExecuteReader();if(dr.Read()){}else{}第一种可以正常判断是否dr.read有记录,而后面两种写法直接到else里面去,帮忙看看为什么
解决方案三:
同意楼上的
解决方案四:
cmd.CommandText="select*fromregeditwhereusername='this.textBox1.Text'anduserpassword='this.textBox2.Text'";这样肯定不行的,因为'this.textBox1.Text'在这里表示的是一个字符串,而并不是textbox1.text的值,而且你这种验证很容易出问题,最好是先将此用户的注册信息读取到本地,再用查询后的结果对比password安全会好些
解决方案五:
用参数,这样就没有了单引号的问题privateconststringSQL_SELECT_TEXT="select*fromregeditwhereusername=@nameanduserpassword=@pwd";SqlCommandcmd=newSqlCommand();cmd.Connection=conn;cmd.CommandText=SQL_SELECT_TEXT;cmd.Parameters.Add(newSqlParameter("@name",this.textBox1.Text.Trim()));cmd.Parameters.Add(newSqlParameter("@pwd",this.textBox1.Text.Trim()));
解决方案六:
我喜欢4楼的方法总是用+连接字符串回看上去很乱
解决方案七:
有人帮你看那么乱的字符串啊,好人~
解决方案八:
cmd.CommandText=string.Format("select*fromregeditwhereusername='{0}'anduserpassword='{1}'",this.textBox1.Text.Trim(),this.textBox2.Text.Trim());
解决方案九:
cmd.CommandText="select*fromregeditwhereusername="+this.textBox1.Text+"anduserpassword="+this.textBox2.Text;或者就用4楼的方法。都可以搞定
解决方案十:
这似乎是初学者容易犯的错误之一'this.textBox1.Text'这样放在字符串里面的时候,不能识别为变量,而只是作为普通的字符串的一部分。
解决方案十一:
cmd.CommandText="select*fromregeditwhereusername='this.textBox1.Text'anduserpassword='this.textBox2.Text'";LZ想直接连上字符串,这个是错误的了.应该是stringsql="select*fromregeditwhereusername='"+this.textBox1.Text+"'anduserpassword="+"'"+this.textBox2.Text+"'";
解决方案十二:
恩,谢谢各位,4楼的不错
解决方案十三:
该回复于2007-10-18 08:48:38被版主删除