如果电子邮件/密码输入错误,则无法显示错误消息 [英] Not able to show error message if the email/password wrongly entered

查看:136
本文介绍了如果电子邮件/密码输入错误,则无法显示错误消息的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如果电子邮件/密码输入错误,我希望出现一个消息框。我正在使用else语句,但是如果登录不正确,则不会显示该消息。

  MyConn = New OleDbConnection 
MyConn.ConnectionString = connString
MyConn.Open()

str1 =( SELECT * FROM [UserData] WHERE [Username] ='& TxtUserName.Text& AND [Password] ='& TxtPassword.Text&')
Dim cmd1 As OleDbCommand = New OleDbCommand(str1,MyConn)
dr = cmd1.ExecuteReader
而博士。 Read()
userFound =真
TxtPassword.Text = dr( Username)。ToString
TxtUserName.Text = dr( Password)。ToString
FirstNameToPass = dr( 名字).ToString
LastNameToPass = dr(姓).ToString
AddressToPass = dr(地址).ToString
EmailToPass = dr(电子邮件).ToString
如果userFound = True,则
UserAccountView.Show ()
Me.Hide()
TxtPassword.Clear()
TxtUserName.Clear()
其他
MsgBox(登录不正确)
如果
结束,而
结束MyConn.Close()
如果
结束$


解决方案

reader.Read()如果行存在则返回true,如果结果集为空则返回false。在您的情况下,如果没有这样的用户(具有提供的用户名和密码),则程序将不会进入循环,并且不会达到如果userFound = True 块。 / p>

因此,跳过 循环并编写如下内容:

 如果dr.HasRows 
dr.Read()
TxtPassword.Text = dr( Username)。ToString
TxtUserName.Text = dr (密码)。ToString
FirstNameToPass = dr(名字)。ToString
LastNameToPass = dr(姓氏)。ToString
AddressToPass = dr(地址)。 ToString
EmailToPass = dr( Email)。ToString

UserAccountView.Show()
Me.Hide()
TxtPassword.Clear()
TxtUserName.Clear()
其他
MsgBox(登录不正确)
如果

编辑:



还有一件事情:永远不要将字符串连接成命令文本。而是使用参数:

  str1 =( SELECT * FROM [UserData] WHERE [Username] =?AND [Password] = ?)
Dim cmd1 As OleDbCommand = New OleDbCommand(str1,MyConn)
cmd1.Parameters.Add(New OleDbParameter( Username,CType(TxtUserName.Text,String)))
cmd1.Parameters.Add(New OleDbParameter( Password,CType(TxtPassword.Text,String)))


I want a message box to appear if the email/ password is entered incorrectly. I am using an else statement but it doesn't display the message if the login is incorrect.

MyConn = New OleDbConnection 
        MyConn.ConnectionString = connString 
        MyConn.Open() 

        str1 = ("SELECT * FROM [UserData] WHERE [Username] = '" & TxtUserName.Text & "' AND [Password] = '" & TxtPassword.Text & "'") 
        Dim cmd1 As OleDbCommand = New OleDbCommand(str1, MyConn)
        dr = cmd1.ExecuteReader 
        While dr.Read() 
            userFound = True 
            TxtPassword.Text = dr("Username").ToString 
            TxtUserName.Text = dr("Password").ToString 
            FirstNameToPass = dr("First Name").ToString 
            LastNameToPass = dr("Last Name").ToString 
            AddressToPass = dr("Address").ToString 
            EmailToPass = dr("Email").ToString 
            If userFound = True Then
                UserAccountView.Show() 
                Me.Hide() 
                TxtPassword.Clear() 
                TxtUserName.Clear() 
            Else
                MsgBox("Login is incorrect")
            End If
        End While
        MyConn.Close() 
    End If

解决方案

reader.Read() returns true if row exists or false if resultset is empty. In your case, if there is no such user (with provided username and password), program won't enter loop and it won't reach If userFound = True block.

So, skip while loop and write something like this:

If dr.HasRows
    dr.Read()
    TxtPassword.Text = dr("Username").ToString 
    TxtUserName.Text = dr("Password").ToString 
    FirstNameToPass = dr("First Name").ToString 
    LastNameToPass = dr("Last Name").ToString 
    AddressToPass = dr("Address").ToString 
    EmailToPass = dr("Email").ToString 

    UserAccountView.Show() 
    Me.Hide() 
    TxtPassword.Clear() 
    TxtUserName.Clear() 
Else
    MsgBox("Login is incorrect")
End If

edit:

one more thing: NEVER concatenate strings to make command text. Instead, use paramters:

str1 = ("SELECT * FROM [UserData] WHERE [Username] = ? AND [Password] = ?") 
Dim cmd1 As OleDbCommand = New OleDbCommand(str1, MyConn)
cmd1.Parameters.Add(New OleDbParameter("Username", CType(TxtUserName.Text, String))) 
cmd1.Parameters.Add(New OleDbParameter("Password", CType(TxtPassword.Text, String))) 

这篇关于如果电子邮件/密码输入错误,则无法显示错误消息的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆