C# access中的sql语句问题

2024-12-30 07:14:41
推荐回答(2个)
回答1:

替换语句:
string str = "if exists(select * from 表名 where 名称 = '" + textbox1.text.trim() + "' and 规格 = '"+textbox2.text.trim()+"' ) begin update 表名set 数量= 数量+" +textbox3.text.trim() +" where 名称 = '"textbox1.text.trim() +"' and 规格 = '"+textbox2.text.trim()+"' end else begin insert into 表名 values('"+textbox1.text.trim()+"','"+textbox2.text.trim()+"',"+textbox3.text.trim()+")"

编译时应该形成的语句为
if exists(select * from 表名 where 名称 = '螺丝钉' and 规格 = '3mm' ) begin update 表名set 数量= 数量+5 where 名称 = '螺丝钉' and 规格 = '3mm' end else begin insert into 表名 values('螺丝钉','3mm',5)
用我的sql实测没问题。。 你试试吧。

回答2:

应该在程序中插入前进行判断,先进行查询看看数据库中有没有同时满足螺丝钉、3mm数据,以此做为判断,
如果有满足条件的数据就执行更新update的语句,将数量值加5,比如:
update 表名 set 数量=数量+5 where 名称='螺丝钉' and 规格='3mm';
如果没有满足条件的数据,就执行
INSERT INTO 表名(名称,规格,数量) VALUES ('螺丝钉','3mm',5);