【发布时间】:2021-01-04 08:40:10
【问题描述】:
如果产品名称已经在表中,我想更新 Qty 的值。
{
connection.Open();
OleDbCommand command = new OleDbCommand();
command.Connection = connection;
command.CommandText = "insert into Product ([Name],[Category],[Supplier],[Brand],[HSNCode],[SKUCode],[CP],[SP],[Psize],[Colour],[ProductImage],[BarcodeImage],[InsertionDate],[QTY]) values ('" + txtProduct.Text + "', '" + comboBoxCategory.Text + "', '" + comboBoxSupplier.Text + "', '" + txtBrand.Text + "', '"+txtHSN.Text+"','"+txtSKU.Text+"','"+txtCP.Text+"','"+txtSP.Text+"','"+comboBoxSize.Text+"','"+checkedListBoxColour.Text+"','"+ProductPictureBox.Image+"','"+BarcodePictureBox.Image+"', '"+ DateTime.Now.Date+ "','"+QtyTextBox.Text+ "') ON DUPLICATE KEY UPDATE [QTY] = VALUES(QTY+1);";
command.ExecuteNonQuery();
MessageBox.Show("Saved successfully");
MessageBox.Show(txtProduct.Text);
}
catch (Exception ex)
{
MessageBox.Show("Error " + ex);
}
我试过这个查询,但它给出了缺少分号的错误。
【问题讨论】:
-
您确定您正在运行 MySQL 吗?列名周围的方括号表示 SQL Server(或者可能是 SQLite)。
-
请参数化您的查询...
-
@GMB 我正在使用 ms 访问数据库
-
This answer 显示了 Access 的一般方法(不支持 ON DUPLICATE KEY)。答案是针对 Python 的,不过翻译成 C# 代码应该不会太难。
-
@BrootsWaymb 在参数化相同的错误后。
标签: c# sql .net database ms-access