如何检查用户在文本框中输入的用户名和密码是否与数据库中的记录匹配

relj7zay  于 2021-06-18  发布在  Mysql
关注(0)|答案(2)|浏览(375)

我正在使用vb.net和mysql数据库,我想检查用户名和密码是否与数据库值匹配示例:username=admin11与username=admin11不同,当用户输入小写“a”时,数据库中的大写“a”是错误的。我想发生的是,当用户输入的用户名,它不完全是数据库中的用户名值用户名是不正确的,这是我的代码,但它不工作

Dim con = New MySqlConnection

con.ConnectionString = "server=localhost;userid=root;password=alpine;port=3305;database=pos_db;pooling=false;SslMode=none"

con.Open()

Dim qry As String = "SELECT COUNT(*) FROM pos_db.tblusers WHERE Username=@user AND Password=@pass"
Dim cmd As New MySqlCommand(qry, con)
cmd.Parameters.AddWithValue("@user", txtUsername.Text)
cmd.Parameters.AddWithValue("@pass", txtPassword.Text)

Dim count As Integer = Convert.ToInt32(cmd.ExecuteScalar())

If count <> 0 Then
    Me.Hide()
    FrmSelect.Show()
Else
    MessageBox.Show("Either username or password in incorrect", "System", MessageBoxButtons.OK, MessageBoxIcon.Error)
End If
6ojccjat

6ojccjat1#

使用 binary 在您的查询中

SELECT COUNT(*) 
FROM pos_db.tblusers 
WHERE 
  BINARY Username = @user
  AND BINARY Password = @pass
v9tzhpje

v9tzhpje2#

非常感谢@parkway先生对我的帮助,这是对我问题的正确提问。现在我在编程方面学到了新东西,再次非常感谢先生。
con.open()

Dim qry As String = "SELECT COUNT(*) FROM pos_db.tblusers WHERE BINARY Username=@user AND BINARY Password=@pass"
        Dim cmd As New MySqlCommand(qry, con)
        cmd.Parameters.AddWithValue("@user", txtUsername.Text)
        cmd.Parameters.AddWithValue("@pass", txtPassword.Text)

        Dim count As Integer = Convert.ToInt32(cmd.ExecuteScalar())

        If count <> 0 Then
            Me.Hide()
            FrmSelect.Show()
        Else
            MessageBox.Show("Either username or password in incorrect", "System", MessageBoxButtons.OK, MessageBoxIcon.Error)
        End If

相关问题