连接Mysql数据库和visual basic

时间:2017-02-04 04:41:59

标签: mysql sql vb.net visual-studio

如果正确插入了用户名和密码,我已经创建了一个代码来显示正确的消息。用户的用户名和密码是从数据库表中提取的。但我总是得到用户名和密码不正确的消息。我不知道为什么。这是我的代码

Private Sub Button2_Click(ByVal sender As System.Object,ByVal e As System.EventArgs)处理btnLogIn.Click         MySqlConn = New MySqlConnection

    MySqlConn.ConnectionString = "server=localhost;userid=root;password=12345;database=environment"

    Dim READER As MySqlDataReader



    Try
        MySqlConn.Open()
        Dim Query As String
        Query = "select * from environment.customers where customer_name='" & txtUser.Text & "'and customer_detail='" & txtPass.Text & " '"

        COMMAND = New MySqlCommand(Query, MySqlConn)
        READER = COMMAND.ExecuteReader

        Dim count As Integer
        count = 0
        While READER.Read
            count = count + 1

        End While

        If count = 1 Then
            MessageBox.Show("username and password are correct")
        ElseIf count > 1 Then
            MessageBox.Show("username and password are duplicate")
        Else
            MessageBox.Show("username and password are incorrect")

        End If



        MySqlConn.Close()

    Catch ex As MySqlException
        MessageBox.Show(ex.Message)

    Finally
        MySqlConn.Dispose()


    End Try
End Sub

结束班

1 个答案:

答案 0 :(得分:0)

在您的代码中尝试此操作。

  #Region "Members"
    Protected WithEvents lblMessage As System.Web.UI.WebControls.Label
    #End Region

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLogin.Click MySqlConn = New MySqlConnection
If Not IsPostBack Then
    If Not IsNothing(txtUser.text) Then 'Replace this field with your own field name.
        If Not IsNothing(txtPass.text) Then 'Replace this field with your own field name.
            Login() 'If both login form is not empty, execute login function
        Else
            LabelMessage.Text("Please enter your password.") 'If password field is empty
            LabelMessage.Visible = True
            Exit Sub
        EndIf
    ElseIf IsNothing(txtUser.text) AND IsNothing(txtPass.text)Then 
        LabelMessage.Text("Please enter your username and password.") 'If both field are empty
        LabelMessage.Visible = True
        Exit Sub
    Else 
        LabelMessage.Text("Please enter your username.") 'If username field are empty
        LabelMessage.Visible = True
        Exit Sub
    EndIf
EndIf
End Sub

Private Sub Login()

Dim conn As New SqlConnection
Dim command As New SqlCommand
Dim Password As String
Dim Password2 As String
Dim Username As String

Try
    conn.ConnectionString = "server=localhost;userid=root;password=12345;database=environment" 'Your SQL Database credentials
    conn.Open() 'Open the connection
    command.Connection = con

    command.CommandText = "SELECT customer_name, customer_details FROM environment.customers WHERE (customer_name = '" & txtUser.text & "') AND (Password='" & txtPass.text & "')"

    Dim lrd As SqlDataReader = command.ExecuteReader()
    If lrd.HasRows Then
        While lrd.Read()
            Username = lrd("customer_name").ToString()
            Password = lrt("Password").ToString()
            Password2 = txtPass.txt()


            If Password = Password2 and Username = txtUser.text Then
                MessageBox.Show("Logged in successfully as " & Username, "", MessageBoxButtons.OK, MessageBoxIcon.Information)
                frmMain.Show()
                Me.Hide()
                Response.Redirect("~/Index.aspx") 'Redirect to your homepage.

                'Clear the login field
                txtPassword.Text = ""
                txtUsername.Text = ""

            End If

        End While

    Else
        MessageBox.Show("Username and Password does not match.", "Authentication Failure", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)

        'Clear the login Field
        txtPassword.Text = ""
        txtUsername.Text = ""

    EndIf

Catch ex As Exception
    Messagebox.Show("Error while connecting to SQL Server." & ex.Message)
Finally
    con.Close() 'After finish execute anything, force close the connection. (Whether succeed or not.)
End Sub