问题描述
我数据库中存储的是:user_name:ABCuser_pass:DDD我也希望是大写的,但登陆时输入:user_name:abcuser_pass:ddd也能成功,那怎么办啊?oleConnection1.Open();stringsql="select*frommytablewhereuserid='"+this.textBox1.Text+"'";OleDbCommandcmd=newOleDbCommand(sql,oleConnection1);if(null!=cmd.ExecuteScalar()){Form3Form3=newForm3();Form3.Show();this.Hide();}elseMessageBox.Show("未注册用户");
解决方案
解决方案二:
应该是区分大小写的。你看看你的键盘上的capslock是否打开了。
解决方案三:
if(null!=cmd.ExecuteScalar())这个不正确。
解决方案四:
stringsql="select*frommytablewhereuserid='"+this.textBox1.Text+"'andpassword='"+textBox2.Text+"'";...if(cmd.ExecuteScalar()>0)
解决方案五:
你给的代码好像不能说明问题
解决方案六:
if(cmd.ExecuteScalar()!=null)
解决方案七:
sql的select语句在查询的时候是不区分大小写的。比如说:select*fromtbwhereuser='a'select*fromtbwhereuser='A'这两个是等效的。
解决方案八:
引用6楼epldlnwynn的回复:
sql的select语句在查询的时候是不区分大小写的。比如说:select*fromtbwhereuser='a'select*fromtbwhereuser='A'这两个是等效的。
+1
解决方案九:
说个题外话。对于t-sql编程而言,你的代码显然是很危险的,应该改为stringsql="select*frommytablewhereuserid='"+this.textBox1.Text.Replace("'","''")+"'";
这是程序员不可忽略的知识。
解决方案十:
如果程序员的sqlserver编程的素质无法期望这个要求,那么不如规定:只能使用参数方式stringsql="select*frommytablewhereuserid=@UserID";
然后使用为cmd变量提交参数值得方式,或者规定只能调用存储过程而不允许直接操作数据库表。