Mohammad Khaled
Mohammad Khaled

Reputation: 19

What is the ConnectionString to connect MySQL db with VB.NET

I am working on to connect my App form VB.Net with MySQL table database with this code:

 Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click

    Dim str As String = "data source=localhost;Initial Catalog=tabledb;user id=root;password=password1234"
    Dim con As New SqlConnection(str)
    con.Open()

    Dim com As String = "Select * from springdata where rfid_tag='" & Rfid_tagTextBox.Text & "'"
    Dim cm As New SqlCommand(com, con)
    Dim rd As SqlDataReader = cm.ExecuteReader()

    If rd.Read() = True Then
        MessageBox.Show("Valid username and password")
    Else
        MessageBox.Show("Invalid username and password", caption:="login")
    End If
End Sub

But when I run the app gave me this error:

Additional information: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

What is the correct ConnectionString to use with MySQL 5.7.

Upvotes: 0

Views: 3627

Answers (1)

Tetsuya Yamamoto
Tetsuya Yamamoto

Reputation: 24957

The connection string below is an SQL Server connection string:

Dim str As String = "data source=localhost;Initial Catalog=tabledb;user id=root;password=password1234"

According to MySQL Connector .NET connection string, you should provide server name, port number (if using different port), database name and credentials like this:

Dim str As String = "Server=localhost;Port=3306;Database=tabledb;Uid=root;Pwd=password1234"

Also you should use MySqlConnection, MySqlCommand & MySqlDataReader instances with parameters instead of value concatenation inside query string (ensure that reference to MySql.Data.dll added first):

Using con As New MySqlConnection(str)
    con.Open()

    Dim com As String = "Select * from springdata where rfid_tag=@tag"

    Using cm As New MySqlCommand(com, con)
        cm.Parameters.Add("@tag", MySqlDbType.VarChar).Value = Rfid_tagTextBox.Text

        Dim rd As MySqlDataReader = cm.ExecuteReader()

        ' Check if any rows exist
        If rd.HasRows = True Then
            ' do something
        Else
            ' do something else
        End If
    End Using
End Using

Upvotes: 1

Related Questions