如果满足两个条件,我想更新查询。我的代码中发生了什么,如果满足其中任何一个,代码就会更新。如果两者同时满足,则不会。
var cmd = new SqlCommand(@"UPDATE [Truck Table]
SET [TruckID] = @TruckID,
[PlateNumber] = @PlateNumber
WHERE [Condition] <> 'Good' AND
[MaximumVolumeLoad] <= 10", Con)
即使条件良好,代码也会更新单元格,但最大卷负载小于或等于10.我想要的是,如果条件不好并且Maxvolumeload <1,它只更新Cell。 10。
答案 0 :(得分:0)
代码看起来不错,主要是因为括号:
var cmd = new SqlCommand(@"UPDATE [Truck Table]
SET [TruckID] = @TruckID,
[PlateNumber] = @PlateNumber
WHERE ([Condition] <> 'Good' AND
[MaximumVolumeLoad]<10)", Con)
答案 1 :(得分:0)
你的脚本看起来不错,尝试调试它,检查 sql 变量;尝试SSMS中的脚本
var sql = "UPDATE [Truck Table] SET [TruckID] = @TruckID, [PlateNumber] = @PlateNumber WHERE [Condition] <> 'Good' AND [MaximumVolumeLoad]<=10";
var cmd = new SqlCommand(sql, Con)
答案 2 :(得分:0)
如果代码不区分大小写,则代码似乎没问题。
var cmd = new SqlCommand(@"UPDATE [Truck Table]
SET [TruckID] = @TruckID,
[PlateNumber] = @PlateNumber
WHERE UPPER([Condition]) <> 'GOOD'
AND [MaximumVolumeLoad]<=10", Con)
答案 3 :(得分:0)
var cmd = new SqlCommand("UPDATE [Truck Table] SET [TruckID] = @TruckID, [PlateNumber] = @PlateNumber WHERE [Condition] <> 'Good' AND [MaximumVolumeLoad]<10", Con)
您只需要从where子句中的第二个条件中删除等号。在上面做了你。
答案 4 :(得分:0)
没有问题,只有小于或等于第二个where子句的小错误。如果您想要少于10个值,则Make [MaximumVolumeLoad] <10。
答案 5 :(得分:-2)
尝试独立地在Sql中运行命令,看看它是否正常工作然后调试你的应用程序并检查