以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  字符串比较  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=12612)

--  作者:chengzhang
--  发布时间:2011/9/9 8:41:00
--  字符串比较

请教:

       在窗口中比较输入的密码和读出来的密码比较代码如下

       e.Form.Controls("txtpwd").Value = dr("userPwd") 但是两个字符串不相等,是怎么回事呢!


--  作者:don
--  发布时间:2011/9/9 8:45:00
--  
实例说话
--  作者:chengzhang
--  发布时间:2011/9/9 8:49:00
--  

 
图片点击可在新窗口打开查看此主题相关图片如下:窗口.jpg
图片点击可在新窗口打开查看

全部代码是这样的:

Dim uName As String = e.Form.Controls("txtName").Value
Dim cmd As New SQLCommand
Dim dt As DataTable
Dim dr As DataRow
cmd.C
If uName = "" Then
    Messagebox.show("请选择用户!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
    Return
End If
cmd.CommandText = "Select * From {userInfo} Where [userID] = \'" & uName & "\'"
dt = cmd.ExecuteReader
dr = dt.DataRows(0)
If e.Form.Controls("txtpwd").Value = dr("userPwd") Then
    \'_UserName = UserName
    \'_UserGroup = dr("userDES")
    MessageBox.Show("登录成功!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
    Messagebox.show("密码错误!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If

[此贴子已经被作者于2011-9-9 8:49:36编辑过]

--  作者:狐狸爸爸
--  发布时间:2011/9/9 8:52:00
--  

计算机是不会撒谎的,等于就是等于,不能于就是不等于。
加行代码,目测两个值分别是什么,然后再比较。

 

messagebox.Show(e.Form.Controls("txtpwd").Value & "|" & dr(userPwd))

If e.Form.Controls("txtpwd").Value = dr("userPwd") Then


--  作者:chengzhang
--  发布时间:2011/9/9 8:57:00
--  


图片点击可在新窗口打开查看此主题相关图片如下:提示.jpg
图片点击可在新窗口打开查看

值就是这个啊,就是输出为 false 感觉就很奇怪咯


--  作者:狐狸爸爸
--  发布时间:2011/9/9 9:03:00
--  

再比较长度:

 

messagebox.Show(len(e.Form.Controls("txtpwd").Value) & "|" & len(dr(userPwd)))

[此贴子已经被作者于2011-9-9 9:03:13编辑过]

--  作者:chengzhang
--  发布时间:2011/9/9 9:08:00
--  

确实是两个长度不一样!那么怎样去比较呢


--  作者:chengzhang
--  发布时间:2011/9/9 9:11:00
--  

确实是存在空格,我用了dr("userPwd").trim() 就可以了,谢谢提示!