你的字段xm(char,20)的数据类型最好是VARCHAR,或者NVARCHAR类型的,如果是char类型的话,如果用户的数据不够20个字符的话,系统会自动在后面加空格的。所以用户输入的数据和你数据库中的数据就不一致了。你或者把数据类型改为varchar,或者判断的时候用Rtrim函数对数据库中的数据进行去掉右边空格的处理
解决方案 »
- 从数据库一次性读出10万条数据,如何提高效率!
- asp。net
- 三层架构问题求解
- 求 一次预览并上传多张图片 的解决方案
- 帮忙看看为什么HttpFileCollection读不到文件
- 求一asp:RegularExpressionValidator的正则表达式,形式是localhost、数字ip(如127.0.0.1, 60.12.78.8)、xxx.yourdoman.xxx 这几种形式
- 请问,在asp.net中如何提取已绑定在datalist中的数据?请具体说明,谢谢!
- 《浅谈“三层结构”原理与用意》,文章开放——
- datagrid+脚本的问题
- 关于DATASET的问题!
- 如何得到文本框的值
- 急啊!超简单,这句话应该怎么写?
改为select * from t_xm where xm=RTrim('"+xm.Text+"')";而且你的这种写法很容易被黑客跳过你的监测
如果黑客输入 ' OR 1=1 OR '1'=' 的话
你拼出的SQL语句就会变为
select * from t_xm where xm='' OR 1=1 OR '1'=''
所以最好用存储过程进行判断,用户名和密码作为参数传入,这样上面的输入就会引起错误。
如果我有说的不对,清高手指点一二 :)
再次谢谢sniper81的安全建议,我注册时用的是存储过程,这个姓名判断是附加的,注册信息表和姓名表都是不同的:)
http://www.ttd168.com/itbook/it.asp?id=48