VB.net中的远程数据库连接无法正常工作

时间:2017-11-16 10:07:53

标签: mysql vb.net connection-string

我目前正在使用VB.net应用程序中的MySQL连接。我有一个表格,其中包含以下代码:

Imports System.Data
Imports System.Data.SqlClient

Public Class Form4
    Private Sub Form4_Load(sender As Object, e As EventArgs) Handles MyBase.Load

End Sub

Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
    ConnectToSQL()
End Sub

Private Sub ConnectToSQL()
    Dim con As New SqlConnection
    Dim cmd As New SqlCommand
    Dim Password As String
    Dim Password2 As String
    Dim userName As String

    Try
        If con.ConnectionString = "Network Library=DBMSSOCN;""Data Source=myserver,1433;""Initial Catalog=users;""User ID=myuser;password=mypass;" Then
            con.Open()

            cmd.Connection = con
            cmd.CommandText = "SELECT user_username, user_pass FROM users WHERE (user_username = '" & txtUsername.Text & "' ) AND (user_pass = '" & txtPassword.Text & "')"

            Dim lrd As SqlDataReader = cmd.ExecuteReader()
            If lrd.HasRows Then
                While lrd.Read()

                    Password = lrd("Password").ToString()
                    userName = lrd("UserName").ToString()

                    Password2 = txtPassword.Text()

                    If Password = Password2 And userName = txtUsername.Text Then

                        MessageBox.Show("Logged in successfully as " & userName, "", MessageBoxButtons.OK, MessageBoxIcon.Information
                                        )
                        Form2.Show()
                        Me.Hide()

                        txtPassword.Text = ""
                        txtUsername.Text = ""

                    End If

                End While

            Else
                MessageBox.Show("Username or Password incorrect...", "Authentication Failed", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
                txtPassword.Text = ""
                txtUsername.Text = ""
            End If

        End If

    Catch ex As Exception
        MessageBox.Show("Error while connecting to SQL Server." & ex.Message)

    Finally
        con.Close()
    End Try
End Sub

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Me.Close()
End Sub
End Class

每次运行应用程序时,我都会正确输入登录详细信息,然后单击登录按钮(Button2)。问题是,它没有做任何事情。它没有抛出异常,甚至没有尝试登录到服务器,据我所知。我用我自己的服务器替换了登录详细信息,所以这不是问题所在。我错过了什么吗?

1 个答案:

答案 0 :(得分:0)

不要以明文形式存储密码!
此外,您的代码很容易sql incjection

没有任何事情发生,因为If永远不会成真:

...
If con.ConnectionString = "Network Library=DBMSSOCN;""Data Source=myserver,1433;""Initial Catalog=users;""User ID=myuser;password=mypass;" Then
...