簡體   English   中英

VB.net WHERE MySQL語句

[英]VB.net WHERE Statement for MySQL

各位晚上好。 我遇到一個使我有些困惑的問題。 我正在從Access轉換為MySQL,對於MySQL查詢,某些語法似乎有所不同。 我正在做的是操作員從“客戶端”表中的記錄填充的“組合框”中選擇一個客戶端。 我做到了沒有問題。 當用戶選擇一個客戶端時,另一個組合框將填充表“行”中的數據。 表“行”具有兩列“客戶”和“行”。 我試圖讓每行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

您的第一種方法幾乎是正確的。 只需將該術語放在單引號中即可:

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

如果要使用參數(WHERE somefield = @value),請訪問http://dev.mysql.com/doc/refman/5.0/en/connector-net-programming-prepared.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM