所以我試圖為資料庫做一個搜索記錄,但我得到了錯誤
你的 SQL 語法有錯誤;檢查與您的 MySQL 服務器版本相對應的手冊,以獲取在第 1 行的“WHERE ProductName LIKE 'Monitor''%'”附近使用的正確語法
Private Sub Btnsearch_Click(sender As Object, e As EventArgs) Handles btnsearch.Click
Try
ListView1.Items.Clear()
strsql = "SELECT tbl_pcperipherals WHERE ProductName LIKE @field1 '%'"
objcmd = New MySql.Data.MySqlClient.MySqlCommand(strsql, objconn)
With objcmd
.Parameters.AddWithValue("@field1", txtsearch.Text)
End With
objdr = objcmd.ExecuteReader
While (objdr.Read)
With ListView1.Items.Add(objdr("ProductID"))
.SubItems.add(objdr("ProductName"))
.subitems.add(objdr("ProductBrand"))
.subitems.add(objdr("ProductCategory"))
.subitems.add(objdr("ProductQuantity"))
.subitems.add(objdr("ProductDescription"))
.subitems.add(objdr("ProductManufacturer"))
.subitems.add(objdr("Stock"))
.subitems.add(objdr("Supplier"))
.subitems.add(objdr("ContactNo"))
End With
objcmd.Dispose()
objdr.Close()
End While
Catch ex As Exception
MsgBox(ex.Message)
Me.fillsview()
End Try
End Sub
uj5u.com熱心網友回復:
您LIKE以錯誤的方式構建匹配的字串.. 嘗試起訴
"SELECT * from tbl_pcperipherals WHERE ProductName LIKE concat(@field1, '%')"
uj5u.com熱心網友回復:
我不知道你為什么使用ListView. ADataGridView具有DataSource屬性,因此更易于編碼。
在Using塊中本地宣告您的一次性資料庫物件。您的選擇陳述句缺少欄位串列和 From 子句。
您的代碼在讀取第一條記錄后關閉讀取器,因為objdr.Close()它在While回圈內。無論如何,在更新用戶界面時保持連接打開是不好的。連接應該在最后一分鐘打開并盡快關閉。ADataReader需要一個開放的連接。如果你Load一個DataTable你可以關閉連接,然后填寫的ListView。
Private Sub Btnsearch_Click(sender As Object, e As EventArgs) Handles btnsearch.Click
Try
ListView1.Items.Clear()
Dim dt As New DataTable
Dim strsql = "SELECT * From tbl_pcperipherals WHERE ProductName LIKE @field1"
Using objconn As New MySqlConnection("Your connection string"),
objcmd As New MySqlCommand(strsql, objconn)
objcmd.Parameters.AddWithValue("@field1", txtsearch.Text & "%")
objconn.Open()
Using reader = objcmd.ExecuteReader
dt.Load(reader)
End Using 'closes and disposes reader
End Using 'disposes objcmd and closes and disposes objconn
For Each row As DataRow In dt.Rows
With ListView1.Items.Add(row("ProductID").ToString)
.SubItems.Add(row("ProductName").ToString)
.SubItems.Add(row("ProductBrand").ToString)
.SubItems.Add(row("ProductCategory").ToString)
.SubItems.Add(row("ProductQuantity").ToString)
.SubItems.Add(row("ProductDescription").ToString)
.SubItems.Add(row("ProductManufacturer").ToString)
.SubItems.Add(row("Stock").ToString)
.SubItems.Add(row("Supplier").ToString)
.SubItems.Add(row("ContactNo").ToString)
End With
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
End Sub
uj5u.com熱心網友回復:
我相信如果你使用這樣的代碼會解決你的問題:
Dim strsql = string.format("SELECT tbl_pcperipherals WHERE ProductName LIKE '%{0}%'",txtsearch.Text);
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/361778.html
標籤:mysql 网络 phpmyadmin xampp
