这是我的SQL专栏: ItemID,ItemName,Unit,Quantity,UnitCost,Total,Status
ItemID是我的条形码编号和主键。数量是一个整数,其标识增量值为1.
如果两次调用相同的sql查询,则不允许复制主键。
我想要的是什么:如果查询被调用了两次,那么将Quantity值增加1,并将UnitCost值加倍,放在Total部分中。
我的想法是,如果它是重复的密钥,那么只需更新它。
ON DUPLICATE KEY UPDATE SET
但是我在整个地方都遇到了错误。
string sql = @"INSERT INTO Grocery (ItemID, ItemName, Unit, UnitCost, Total, Status) VALUES ('2414', '2414', 'EACH', '1.5', '1.5', 'LP') ON DUPLICATE KEY UPDATE ItemName='changed'";
connection.Open();
SqlCeCommand commandInsert = new SqlCeCommand(sql, connection);
commandInsert.ExecuteNonQuery();
答案 0 :(得分:1)
无法通过插入来更新表中的值。
你必须,
首先设置
Quantity
是正常integer
列然后检查表中已存在的给定项目。
如果存在,请更新
Quantity
和Total
列否则将该项目插入表格
希望这有帮助。