我正在使用winforms创建GRN应用程序。我有2张桌子。
表1:手头库存
表2:销售
如何在销售后从数量中减去库存。这是我的数据库插入代码。添加这些我想减去。
String SQL = "insert into Items_Sold values('"
+ myobj.Invoiceno + "','"
+ myobj.Itemcode + "','"
+ myobj.Category + "','"
+ myobj.Itemname + "','"
+ myobj.Qty + "','"
+ myobj.Unitprice + "',' "
+ myobj.Subtotal + "')";
DBConnection mycon = new DBConnection();
mycon.insertValues(SQL);
我试过
{
string SQL = "Update Stock Set Invoiceno='"
+ textBox_InvoiceNo.Text.Trim() + "', "
+ "Quantity='" + textBox_Qty.Text.Trim() + "',"
DBConnection database = new DBConnection();
int rslt = database.updatetValues(SQL);
if (rslt > 0)
{
MessageBox.Show("Updated");
}
else
{
MessageBox.Show("Faild");
}
}
这是用新数据更新我的数据库。
答案 0 :(得分:2)
你有几个问题。
SQL注入(即使用参数)
没有交易 - 你绝对应该在交易中采取这样的行动,这样你就不会得到借记而不是信用。
你真的应该使用类似于这个
的更新代码update Stock set Quantity = Quantity - @delta and Quantity >= @delta
where ...
这避免了避免一些可能的并发相关问题的问题
错误应该是
update Stock set Quantity = Quantity - @delta
where ... and Quantity >= @delta
答案 1 :(得分:1)
您可能希望在UPDATE中添加WHERE条件,仅更新一些(或一个)记录,而不是全部。你可能想要使用像
这样的东西SET quantity = quantity - difference_value
其中difference_value
将是您要减去的内容。
我不确定细节,因为你没有说明你怎么做。 G。识别要在减去时更新的记录。