You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

点击添加按钮更新product_stock时误更新同值库存的技术求助

解决UPDATE语句误更新同库存商品的问题

你的问题根源很清晰:当前的UPDATE语句用库存值作为筛选条件,这会导致所有库存等于目标值的商品都被批量修改——就像你遇到的情况,Nail和Bulb库存都是100,执行更新时自然会同时命中两条记录。

要解决这个问题,你需要改用能唯一标识单个商品的字段(比如商品名称product_name、商品IDproduct_id这类字段)来作为WHERE条件,而不是依赖容易重复的库存值。

修改后的代码示例

假设你的表中有product_name字段用来区分不同商品,调整后的代码如下:

conn.Open()
Using com As New SqlCommand("UPDATE table_addsub SET [product_stock] = [product_stock] + @qty WHERE [product_name] = @productName", conn)
    com.Parameters.AddWithValue("@productName", Me.TextBox3.Text) '这里TextBox3输入目标商品名称(比如Bulb)
    com.Parameters.AddWithValue("@qty", Me.TextBox4.Text) 'TextBox4是要增加的库存数量
    com.ExecuteNonQuery()
    MessageBox.Show("Updated Successfully")
    LoadList()
End Using

关键说明

  • 替换筛选条件:把原来的WHERE [product_stock] = @qty1改成WHERE [product_name] = @productName,这样只会更新指定名称的商品库存,不会影响其他同库存的商品。
  • 参数含义调整:现在TextBox3用来输入目标商品的名称(比如"Bulb"),而非库存值;TextBox4依然是要增加的数量。
  • 更稳妥的方案:如果你的表有唯一的product_id字段(比如整数类型的ID),建议用它作为筛选条件,比商品名称更可靠(避免商品名称重复的情况)。

内容的提问来源于stack exchange,提问作者Buchiman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 07:16:59