下面是表格:item_id是PrimaryKey和AUTO INCREMENT,item_code是UNIQUE
| item_id | item_code | item_name |
-----------------------------------
| 1 A001 Apple |
| 2 A002 Orange |
-----------------------------------
Private Sub Model_Insert(fields As String())
Dim query As String = "INSERT INTO main_item(item_code,item_name,item_desc,item_unitprice,item_barcode,dept_id,cat_id,gst_id,set_item,active)" &
"VALUES (@item_code,@item_name,@item_desc,@item_unitprice,@item_barcode,@dept_id,@cat_id,@gst_id,@set_item,@active)" &
"ON DUPLICATE KEY UPDATE
item_code=VALUES(@item_code),
item_name=VALUES(@item_name),
item_desc=VALUES(@item_desc),
item_unitprice=VALUES(@item_unitprice),
item_barcode=VALUES(@item_barcode),
dept_id=VALUES(@dept_id),
cat_id=VALUES(@cat_id),
gst_id=VALUES(@gst_id),
set_item=VALUES(@set_item),
active=VALUES(@active)"
Using cmd = New MySqlCommand(query, conn)
cmd.Parameters.AddWithValue("@item_code", fields(0).Trim)
cmd.Parameters.AddWithValue("@item_name", fields(1).Trim())
cmd.Parameters.AddWithValue("@item_desc", fields(2).Trim())
cmd.Parameters.AddWithValue("@item_unitprice", fields(3).Trim())
cmd.Parameters.AddWithValue("@item_barcode", fields(4).Trim())
cmd.Parameters.AddWithValue("@dept_id", fields(5).Trim())
cmd.Parameters.AddWithValue("@cat_id", fields(6).Trim())
cmd.Parameters.AddWithValue("@gst_id", fields(7).Trim())
cmd.Parameters.AddWithValue("@set_item", fields(8).Trim())
cmd.Parameters.AddWithValue("@active", fields(9).Trim())
Dim numInserted = cmd.ExecuteNonQuery()
End Using
End Sub
其他信息:您的SQL语法有错误;校验 与您的MariaDB服务器版本对应的手册 正确的语法在''A001'附近使用),item_name = VALUES('Kopi'),'在第2行
当我尝试插入具有相同item_code但不同的item_name的记录时出现此错误,我想保留item_code但用新值替换其他列。