Vb6 I';我正在尝试验证用户名和密码,I';I’我不能理解这个问题吗?我该如何解决这个问题?
我试图验证用户名和密码,当我通过调试器调用GetUsername()和GetPassword()函数时,它会打印适当的值,但当我在程序中键入相同的值时,它会显示不正确的用户名或密码Vb6 I';我正在尝试验证用户名和密码,I';I’我不能理解这个问题吗?我该如何解决这个问题?,vb6,Vb6,我试图验证用户名和密码,当我通过调试器调用GetUsername()和GetPassword()函数时,它会打印适当的值,但当我在程序中键入相同的值时,它会显示不正确的用户名或密码 Private Sub cmdLogin_Click() Dim ReturnVal As Integer Dim resp As Integer Dim username As String Dim password As String Debug.Print GetUsername() D
Private Sub cmdLogin_Click()
Dim ReturnVal As Integer
Dim resp As Integer
Dim username As String
Dim password As String
Debug.Print GetUsername()
Debug.Print GetPassword()
username = GetUsername()
password = GetPassword()
If txtUsername.Text = username And txtPassword.Text = password Then
ReturnVal = sndPlaySound("D:\Docs Dump\351877__theatomicbrain__start-
computer.wav", SND_ASYNC)
frmMenu.Show
FormLogin.Hide
Else
MsgBox "Incorrect Password or Username", vbOKOnly + vbCritical, "Error"
txtUsername.Text = ""
txtPassword.Text = ""
End If
End Sub
GetUsername()和GetPassword():
试试这个
Private Sub cmdLogin_Click()
Dim ReturnVal As Integer
Dim resp As Integer
Dim username As String
Dim password As String
Dim fUserNameOK As Boolean, fPassOK As Boolean
username = GetUsername()
password = GetPassword()
Debug.Print username
Debug.Print password
fUserNameOK = (StrComp(username, txtUsername.Text, vbTextCompare) = 0)
fPassOK = (StrComp(username, txtPassword.Text, vbBinaryCompare) = 0)
If fUserNameOK And fPassOK Then
' play sound file
Else
' login error
End If
End Sub
在If行设置断点。将鼠标悬停在fUserNameOK和FpasOK上。显然,它们不是相同的值。从代码的其余部分判断,它们要么有不同的大小写,要么有尾随空格。运算符=(等于)区分大小写。用户名通常不区分大小写,因此请尝试以下操作:如果Trim$(LCase(txtsername.Text))=Trim$(LCase(Username))和txtPassword.Text=password,则…@Smith将转换为小写或大写,以进行不区分大小写的比较。使用的第三个参数执行不区分大小写的比较。您是否将鼠标光标悬停在该行的四个变量上?只有在登录表中有一条记录,或者您正在搜索的是第一条记录时,您的代码才会起作用(hey/9545)。您确定不应该在sql查询中包含用户名吗?
Private Sub cmdLogin_Click()
Dim ReturnVal As Integer
Dim resp As Integer
Dim username As String
Dim password As String
Dim fUserNameOK As Boolean, fPassOK As Boolean
username = GetUsername()
password = GetPassword()
Debug.Print username
Debug.Print password
fUserNameOK = (StrComp(username, txtUsername.Text, vbTextCompare) = 0)
fPassOK = (StrComp(username, txtPassword.Text, vbBinaryCompare) = 0)
If fUserNameOK And fPassOK Then
' play sound file
Else
' login error
End If
End Sub