0
我有一个表是这样的:更新下一行如果当前更新的行0
HarvestID | CheckIn | Actual | Status
1 | Date | 100 | Process
2 | Date | 200 | Process
3 | Date | 400 | Process
,我的问题是如何,如果我设置的数量=“350”然后更新ID“1”更新下一行&'2'为0,ID'3'数量='350'
有没有办法做到这一点,而不用创建一个新的表来存储“A”数量的总数和使用存储过程?
什么我已经尝试是:
cmdTemp = New MySqlCommand("SELECT * FROM tb_harvest ORDER BY CheckIn ASC LIMIT 1", cn)
sqlrd = cmdTemp.ExecuteReader
While sqlrd.Read
harvestid = sqlrd("HarvestID")
qtyTemp1 = sqlrd("Actual") - Qty : qtyTemp2 = sqlrd("Actual")
End While
sqlrd.Close()
If qtyTemp1 < 0 Then
cmdTemp = New MySqlCommand("UPDATE tb_harvest SET Actual=0 WHERE HarvestID=" & harvestid & "; " & _
"UPDATE tb_harvest SET Actual=Actual+" & qtyTemp1 & " WHERE HarvestID=" & harvestid + 1, cn)
cmdTemp.ExecuteNonQuery()
Else
cmdTemp = New MySqlCommand("UPDATE tb_harvest SET Actual=Actual-" & qtyTemp2 & " WHERE HarvestID=" & harvestid, cn)
cmdTemp.ExecuteNonQuery()
End If
这个代码是伟大的工作,谢谢! @GordonLinoff 如果我尝试在VB.net中使用它,它返回错误,说没有定义qty或tmp,如何解决 – Shiroze