mysql - 你好,我有一个带有 sql 数据库的 vb.net 应用程序,我想搜索数据库并使用组合框和文本框过滤搜索

标签 mysql vb.net

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/

相关文章:

vb.net - GUI不会相应移动

vb.net - 星号兼容性查找算法

vb.net DataGridView 未提交的新行无法变得不可见

mysql - 如何从以下结果中仅获取最新日期?

javascript - 如何在 JavaScript 中保留 getElementById 的文本格式?

c# - 如何搜索不属于高级搜索结果的 Outlook.MailItems

vb.net - 如何获取当前时间戳

php - 准备语句——跨表更新

如果任一匹配查询,MySQL 查询将返回 2 个值的结果

mysql - MySQL 查询中的嵌套 CASE