我正在使用以下代码将我的App表单VB.Net
与MySQL
表数据库连接:
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
但是当我运行该应用程序时,出现了这个错误:
其他信息:与网络有关或与实例有关的错误 建立与SQL Server的连接时发生。服务器 找不到或无法访问。验证实例名称 是正确的,并且该SQL Server配置为允许远程 连接。 (提供者:命名管道提供者,错误:40-无法 打开与SQL Server的连接)
与ConnectionString
一起使用的正确MySQL 5.7
是什么。
答案 0 :(得分:1)
下面的连接字符串是SQL Server connection string:
Dim str As String = "data source=localhost;Initial Catalog=tabledb;user id=root;password=password1234"
根据MySQL Connector .NET connection string,您应提供服务器名称,端口号(如果使用其他端口),数据库名称和凭据,如下所示:
Dim str As String = "Server=localhost;Port=3306;Database=tabledb;Uid=root;Pwd=password1234"
此外,您应该使用带有参数的MySqlConnection
,MySqlCommand
和MySqlDataReader
实例,而不是在查询字符串中使用值串联(确保首先添加对MySql.Data.dll
的引用):>
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