【问题标题】:i want to subtract a value from a table while adding those value in another table我想从一个表中减去一个值,同时在另一个表中添加这些值
【发布时间】:2013-11-29 07:33:25
【问题描述】:

我正在使用 winforms 创建一个 GRN 应用程序。我有 2 张桌子。

表 1:现有库存
表 2:销售额

如何在售出后从 Quantity 中减去现有库存。这是我的数据库插入代码。在添加这些时,我想减去。

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");
        }
    }

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

【问题讨论】:

  • 参数化你的 sql 查询。 SQL 注入攻击很糟糕。
  • 我能闻到 SQL 注入的味道
  • 我不知道你在问什么。
  • 哇,以正确的方式做到这一点帮助我,我是一只新蜜蜂
  • stackoverflow.com/questions/6547986/… 这将有助于防止 SQL 注入

标签: c# sql database winforms


【解决方案1】:

你有几个问题。

SQL 注入(即使用参数)

没有交易——你绝对应该在交易中采取这样的行动,这样你就不会得到借方而不是贷方。

您确实应该使用类似于此的更新代码

update Stock set Quantity = Quantity - @delta and Quantity >= @delta
where ...

这避免了避免一些可能的并发相关问题的问题

错误应该是

update Stock set Quantity = Quantity - @delta 
where ... and Quantity >= @delta

【讨论】:

  • Gary Walker 我需要更多关于更新的解释。
【解决方案2】:

您可能希望将 WHERE 条件添加到 UPDATE 以仅更新部分(或一个)记录而不是全部。你可能想使用类似

SET quantity = quantity - difference_value

difference_value 将是您要减去的。 我不确定细节,因为你没有说明你怎么能e。 G。识别减去时要更新的记录。

【讨论】:

  • 我正在制作发票表格,所以如果我进行销售,应该在我的库存表中减去它,同时在已售表中添加相同的数量,最后我想 c 剩余库存
猜你喜欢
  • 2021-04-11
  • 2019-11-07
  • 1970-01-01
  • 1970-01-01
  • 2010-11-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多