在这点我们需要使用到的sql语句
语法:
update 表名 set 某个值=case when @你要修改的值 > 表中的某一个值 then 成立之后要设置的值 else 前面没有成立设置的值 end
举例:
我根据传入的年龄age来设置type为1还是0,1表示成年,0表示未成年
update Table set name=@name,type=case when @age>=18 then 1 else 0 end
明白了上面的语法之后,我们来看下面这个例子:
// ProductInventory 是实体类
//StatusId -2表示库存为0,-1表示低于最小库存量,1表示正常库存量,2表示超过最大存款量
//TotalCount 数据库当前库存量
//MaxCount 最大库存量标识
//MinCount 最小库存量标识
//PorductId 就是id
//TotalCount=TotalCount+@TotalCount 表示我增加的库存加上数据库剩余的库存
//@TotalCount+TotalCount>MaxCount then 2 表示我传入的(@ToalCount)+原来数据库中剩余的库存(TotalCount)如果大于了设置的最大库存标识,那就向StatusId设置为2
public bool BePutInStorage(ProductInventory productInventory) { string sql = "update ProductInventory set TotalCount=TotalCount+@TotalCount,StatusId=case"; sql += " when @TotalCount+TotalCount>MaxCount then 2"; sql += " when @TotalCount+TotalCount>=MinCount and @TotalCount+TotalCount<=MaxCount then 1"; sql += " when @TotalCount+TotalCount<MinCount and @TotalCount+TotalCount>0 then -1"; sql += " else -2"; sql += " end"; sql += " where ProductId=@ProductId"; SqlParameter[] sp = { new SqlParameter ("@TotalCount", productInventory.TotalCount), new SqlParameter ("@ProductId", productInventory.ProductId), }; }
标签:或者说,when,update,库存量,TotalCount,值来,sql,ProductId From: https://www.cnblogs.com/tlfe/p/18256443