我想在另一个表中添加这些值时从表中减去一个值

时间:2013-11-15 19:26:25

标签: c# sql database winforms

我正在使用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");
        }
    }

这是用新数据更新我的数据库。

2 个答案:

答案 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。识别要在减去时更新的记录。