【问题标题】:How to deduct quantity in SQL database?SQL数据库中如何扣减数量?
【发布时间】:2019-12-30 08:40:23
【问题描述】:

enter image description here我试图在我的数据库中获取 Quantity 和 ItemBought 的差异,并根据两者之间的差异更新 Quantity 列。

我为此尝试了不同的 SQL 代码,但总是遇到相同的错误

试试 获取连接()

        sql = "SELECT (Quantity - ItemBought) AS [Quantity] FROM products WHERE ProductCode = @ProductCode;"

        cmd = New MySqlCommand
        With cmd
            .Connection = conn
            .CommandText = sql
            .Parameters.Clear()

            .Parameters.AddWithValue("@ProductCode", formPOS.ProductCodeTB.Text)
            .Parameters.AddWithValue("@ItemBought", formInventory.quantityTB.Text)
            result = cmd.ExecuteNonQuery()
            If result = 0 Then
                MsgBox("Error in updating the selected product!")
            Else
                MsgBox("Successfully updated the selected product!")
            End If"

【问题讨论】:

  • 这是哪个 RDBMS?
  • 您的连接字符串似乎不起作用
  • 方括号是 sqlserver 的东西,mysql 不喜欢它们。如果您使用的是 mysql,请尝试使用单引号。
  • 您是要更新还是选择?
  • 更新数据库先生

标签: mysql sql vb.net xampp


【解决方案1】:

更新表格并使用修改后的值并重新填充网格视图。它会直接改变表的值。

或者

如果您正在寻找数据的临时更改,请按照以下步骤操作:

"SELECT Quantity AS [Quantity] FROM products WHERE ProductCode = @ProductCode;"

然后减去ItemBought然后显示在gridview上。

【讨论】:

    【解决方案2】:

    您正在尝试exececutenonquery(),所以我相信您正在尝试更新您的产品表。

     sql = "UPDATE products set Quantity = (Quantity - @ItemBought) WHERE ProductCode = @ProductCode;"
    
            cmd = New MySqlCommand
            With cmd
                .Connection = conn
                .CommandText = sql
                .Parameters.Clear()
    
                .Parameters.AddWithValue("@ProductCode", formPOS.ProductCodeTB.Text)
                .Parameters.AddWithValue("@ItemBought", formInventory.quantityTB.Text)
                result = cmd.ExecuteNonQuery()
                If result = 0 Then
                    MsgBox("Error in updating the selected product!")
                Else
                    MsgBox("Successfully updated the selected product!")
                End If"
    

    【讨论】:

    • 我尝试了先生您建议的新 SQL 代码,但仍然无法正常工作
    • 更新了 sql 查询字符串。立即尝试,让我知道错误详情。
    • 仍然不是先生,它只是进入“If result = 0 Then MsgBox("Error in update the selected product!")”语句
    • 你的formPOS.ProductCodeTB.Text和formInventory.quantityTB.Text的值是多少,我们的productcode存在于你的数据库中,应该返回1,否则返回0
    • ProductCode ItemDescription UnitPrice Quantity ItemBought 123 ALUMINIUM 60 20 10
    【解决方案3】:

    刚刚得到正确答案,我通过设置ProductCode列的正确TextBox和正确Form解决了它

    Try
            getConnection()
    
            sql = "UPDATE products SET Quantity = (Quantity - @ItemBought) WHERE ProductCode = @ProductCode;"
    
            cmd = New MySqlCommand
            With cmd
                .Connection = conn
                .CommandText = sql
                .Parameters.Clear()
    
                .Parameters.AddWithValue("@ProductCode", formPOS.ProductCodeTB.Text)
                .Parameters.AddWithValue("@ItemBought", formQuantity.quantityTB.Text)
                result = cmd.ExecuteNonQuery()
                If result = 0 Then
                    MsgBox("Error in updating the selected product!")
                Else
                    MsgBox("Successfully updated the selected product!")
                End If
            End With
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-03
      • 2021-10-06
      • 2012-01-06
      • 1970-01-01
      • 2018-01-31
      • 2012-01-24
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多