请教下面这个if判断为什么不执行,明明值是相等的,求解
请问下面这个if判断为什么不执行,明明值是相等的,求解
目的是判断用户名密码是否和数据库里面的相同,用户名验证没有问题,但是密码就是不行,所以就单独测试
就先弹出两个窗体显示两者的值,输入的密码和数据库中的是一样的,但是为啥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();
}
------解决思路----------------------
确认是否多空格少空格,大小写是否一致,然后与其问还不如调试
------解决思路----------------------
if (this.txtPwd.Text.Trim().ToUpper() == dr["_pass"].ToString().Trim().ToUpper())
先看看
------解决思路----------------------
------解决思路----------------------
数据库里的字段类型是varchar
还是char
如果是char,不足位数会用空格补齐
------解决思路----------------------
所以治本的办法还是改数据库里的字段类型
乱用Trim()的话,你密码就不能带空格了
目的是判断用户名密码是否和数据库里面的相同,用户名验证没有问题,但是密码就是不行,所以就单独测试
就先弹出两个窗体显示两者的值,输入的密码和数据库中的是一样的,但是为啥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();
}
------解决思路----------------------
确认是否多空格少空格,大小写是否一致,然后与其问还不如调试
------解决思路----------------------
if (this.txtPwd.Text.Trim().ToUpper() == dr["_pass"].ToString().Trim().ToUpper())
先看看
------解决思路----------------------
if (this.txtPwd.Text.Trim().ToLower() == dr["_pass"].ToString().Trim().ToLower())
------解决思路----------------------
数据库里的字段类型是varchar
还是char
如果是char,不足位数会用空格补齐
------解决思路----------------------
所以治本的办法还是改数据库里的字段类型
乱用Trim()的话,你密码就不能带空格了