【问题标题】:VB.net WHERE Statement for MySQLMySQL 的 VB.net WHERE 语句
【发布时间】:2013-07-11 22:13:50
【问题描述】:

大家晚上好。我遇到了一个让我有些难过的问题。我正在从 Access 转换为 MySQL,似乎 MySQL Query 的某些语法不同。我正在做的是一个操作员从“客户端”表中的记录中选择一个“组合框”的客户端。我做到了,没有任何问题。当用户选择一个客户端时,另一个组合框会填充表“行”中的数据。 “Lines”表有 2 列 Client 和 Line。我试图让每一行 WHERE Client = LEXAR。有什么想法或想法吗?

我想它会是这样的:

"SELECT * FROM Lines WHERE Client=LEXAR"

or

"SELECT * FROM Lines WHERE(client = @LEXAR)"

or

"SELECT * FROM Lines WHERE(client = '@LEXAR')"

or

"SELECT * FROM Lines WHERE client LIKE LEXAR)"

or



"SELECT * FROM ``Lines``WHERE ``Client``='LEXAR')"

or

"SELECT * FROM Lines WHERE Client ='LEXAR')"

但没有任何工作。这是我的代码:

Dim sql As MySqlCommand = New MySqlCommand("SELECT * FROM Lines WHERE(client = @LEXAR)", con)
        Dim dt As DataTable = New DataTable()

        Dim DataAdapter1 As MySqlDataAdapter = New MySqlDataAdapter(sql)
        DataAdapter1.Fill(dt)


        If dt.Rows.Count > 0 Then
            ComboBox1.DataSource = dt
            ComboBox1.DisplayMember = "Line"
        End If
        con.Close()

这些是错误:

Fatal error encountered during command execution.

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Lines WHERE client =  LEXAR)' at line 1

完整代码:

Imports MySql.Data.MySqlClient
Imports System.Net
Imports System.IO

Dim con As MySqlConnection = New MySqlConnection("Data Source=xxx.xxx.xxx.xxx;Database=productiontrackerpro;User ID=xxxxxxxx;Password=xxxxxxxx;")


Public Sub LoadClients()

        Dim sql As MySqlCommand = New MySqlCommand("SELECT * FROM Lines WHERE Client = 'LEXAR')", con)
        Dim dt As DataTable = New DataTable()

        Dim DataAdapter1 As MySqlDataAdapter = New MySqlDataAdapter(sql)
        DataAdapter1.Fill(dt)


        If dt.Rows.Count > 0 Then
            ComboBox1.DataSource = dt
            ComboBox1.DisplayMember = "Line"
        End If
        con.Close()




    End Sub

错误:

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'Lines WHERE Client = 'LEXAR')' at line 1

【问题讨论】:

  • 不是 MySQL 专家,但请尝试SELECT * FROM Lines WHERE Client = 'LEXAR'

标签: mysql .net vb.net


【解决方案1】:

您的第一种方法几乎是正确的。只需将术语放在单引号中:

"SELECT * FROM `Lines` WHERE `Client` = 'LEXAR';"

如果您想使用参数(WHERE somefield = @value),请查看http://dev.mysql.com/doc/refman/5.0/en/connector-net-programming-prepared.html

【讨论】:

  • 好的,“lines”和“client”是 MySQL 命令。请改用SELECT * FROM `Lines` WHERE `Client`='LEXAR'(将字段放在单个反引号中)
  • 得到相同的语法错误。我知道这可能很简单。我只是没有看到它。
  • 发布在 dwtm 上面。谢谢。
  • 我不知道它是什么。如果我在 PHP Select * From Lines Where Client LIKE '$client_name' 中执行此操作,则它执行得很好。
  • New MySqlCommand("SELECT * FROM Lines WHERE Client = 'LEXAR')", con) 如果这是您当前的语句,从查询中删除右括号像这样:New MySqlCommand("SELECT * FROM `Lines` WHERE `Client` = 'LEXAR'", con) 并使用仅单个反引号,请参阅我的更新答案。
猜你喜欢
  • 2013-03-11
  • 2011-08-07
  • 1970-01-01
  • 1970-01-01
  • 2021-07-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多