请问下面这个if判断为什么不执行,明明值是相等的,求解

.Net技术 码拜 10年前 (2015-05-10) 864次浏览 0个评论

目的是判断用户名密码是否和数据库里面的相同,用户名验证没有问题,但是密码就是不行,所以就单独测试
就先弹出两个窗体显示两者的值,输入的密码和数据库中的是一样的,但是为啥if下的还是没执行,、
究竟问题在哪,

       MessageBox.Show(this.txtPwd.Text);
       MessageBox.Show(dr[“_pass”].ToString ());

       if (this.txtPwd.Text == dr[“_pass”].ToString())
        {
             b = true;
             _name = dr[“_name”].ToString();
             _pass = dr[“_pass”].ToString();
        }
        if (b == true)
        {
              M0 dakaim0 = new M0();
              dakaim0.Show();
         }

2分
确认是否多空格少空格,大小写是否一致,然后与其问还不如调试
引用 1 楼 starfd 的回复:

确认是否多空格少空格,大小写是否一致,然后与其问还不如调试

都没有,也没有报错,调试好久了,所以才问,

5分
if (this.txtPwd.Text.Trim().ToUpper() == dr[“_pass”].ToString().Trim().ToUpper())

先看看

3分

if (this.txtPwd.Text.Trim().ToLower() == dr["_pass"].ToString().Trim().ToLower())

引用 3 楼 yuwenge 的回复:

if (this.txtPwd.Text.Trim().ToUpper() == dr[“_pass”].ToString().Trim().ToUpper())

先看看

谢谢,可以了,
为啥以前没有统一处理,也是可以得,这次就不行了,

引用 4 楼 xwbb123 的回复:

if (this.txtPwd.Text.Trim().ToLower() == dr["_pass"].ToString().Trim().ToLower())

谢谢,已解决

5分
数据库里的字段类型是varchar
还是char
如果是char,不足位数会用空格补齐
5分
所以治本的办法还是改数据库里的字段类型
乱用Trim()的话,你密码就不能带空格了
引用 7 楼 Z65443344 的回复:

数据库里的字段类型是varchar
还是char
如果是char,不足位数会用空格补齐

是nchar(10),随便设的,用户名和密码一般用什么类型比较好呢?


CodeBye 版权所有丨如未注明 , 均为原创丨本网站采用BY-NC-SA协议进行授权 , 转载请注明请问下面这个if判断为什么不执行,明明值是相等的,求解
喜欢 (0)
[1034331897@qq.com]
分享 (0)

文章评论已关闭!