DataGridView1.DataSource = Nothing
Dim con As New MySqlConnection("Data Source=localhost;user id=root; password=; database=ugibl;")
Dim da As MySqlDataAdapter = Nothing
Dim dt As New DataTable
Dim SQL As String = ""
Try
**SQL = "select * FROM duty where '" & ComboBox3.Text & "' = '" & TextBox15.Text & "' "**
con.Open()
da = New MySqlDataAdapter(SQL, con)
da.Fill(dt)
con.Close()
DataGridView1.DataSource = dt
Catch ex As Exception
If con.State = ConnectionState.Open Then
con.Close()
End If
End Try
End Subere
最佳答案
MySql 中列名周围使用的字符是反引号 (ALT+096),而不是单引号。所以你创建sql命令的行是错误的。
SQL = "select * FROM duty where `" & ComboBox3.Text & "` = ....
但是请记住,您不应构建连接字符串而应使用参数的 sql 命令。在您的情况下,应该使用参数来表达 where 语句中的值
...
SQL = "select * FROM duty where `" & ComboBox3.Text & "` = @param1"
con.Open()
da = New MySqlDataAdapter(SQL, con)
da.SelectCommand.Parameters.Add("@param1", MySqlDbType.VarChar).Value = TextBox15.Text
da.Fill(dt)
....
请注意,您不能将参数用于列名称,只能将它们用于值
关于mysql - 你好,我有一个带有 sql 数据库的 vb.net 应用程序,我想搜索数据库并使用组合框和文本框过滤搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34777566/