各位晚上好。我遇到了一个让我有些难过的问题。我正在从 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