简体   繁体   中英

User is denied access when running a query

my vb.net code is supposed to connect to my database. It did this successfully until I added a query to check if the username and password existed. After adding this, the user is denied access whilst still using the same password. What could be the cause of this? Code:

MysqlConn = New MySqlConnection()

    MysqlConn.ConnectionString = "server=;" _
    & "user id=;" _
    & "password=;" _
    & "database="

    Try
        MysqlConn.Open()
        Using cmd As New MySqlCommand
            cmd.CommandText = "SELECT COUNT(*) From tableUser WHERE Username=" & TextBox1.Text & " AND Password=" & TextBox2.Text
            cmd.CommandType = CommandType.Text
            cmd.Connection = MysqlConn
            result = cmd.ExecuteScalar
        End Using
        MysqlConn.Close()
        If (result < 1) Then
            MessageBox.Show("Please make sure you have typed valid credentials!")
        ElseIf result = 1 Then
            Dim form As New Form2
            form.Show()
            Me.Close()
        End If
    Catch myerror As MySqlException
        MessageBox.Show("Connection to the database has been lost. Please try again later.")
    Finally
        MysqlConn.Dispose()
    End Try

Here is some code , i just wrote it , hope it helps ,just change it to your needs.

Private Sub login()
    conn = New MySqlConnection
    con.ConnectionString =
        "server=localhost;userid=root;password=1234;database=batabase;port=3307"
    Dim READER As MySqlDataReader
    If TextBox1.Text = "" Then


        MessageBox.Show("Please enter usename ! ", "Enter username")
        Exit Sub

    End If
    If TextBox2.Text = "" Then

        MessageBox.Show("Please enter password", "Enter password")
        Exit Sub
    End If


    Try


        conn.Open()
        Dim Query As String
        Query = "select * from db.users where user='" & TextBox1.Text & "' and password='" & TextBox2.Text & "' "
        COMMAND = New MySqlCommand(Query, conn)
        READER = COMMAND.ExecuteReader
        Dim count As Integer

        count = 0
        While READER.Read
            count = count + 1
        End While

        If count = 1 Then

            Form.Show()
            Me.Hide()

        ElseIf count > 1 Then
            MessageBox.Show("The username is already in use!")
        Else
            MsgBox("Error , please try again ", MsgBoxStyle.Critical)
        End If




        conn.Close()
    Catch ex As Exception
        MessageBox.Show(ex.Message)
    Finally
        conn.Dispose()
    End Try
End Sub

Change the database name user name to your needs and it will work !

just add the login() in your login button on your form !!! or enter this code on your button without the Private Sub login()

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM