输入ID和入库数量(in)入库数量相加,同时更新库存 库存=库存+入库数量
这个SQL语句为什么报错:Unknown column 'innull' in 'field list'
换成quantity=in+?输出时in的字段值可以完成运算相加,但quantity的字段值输出为null,数据表里也可以进行更新但也更新的是null
sql = "update tb set in=in+?,quantity=quantity+in? where id=?";
如果要改的话应该怎么改才对
这还需要拍照片? 错误说 innull 这个字段在数据库中找不到,就这么简单。
问题就是出在你的参数为null,你自己逻辑判断下,为null不执行就好了。
代码前后拍一下看看
把这个sql 打印出来 ,in? 问题应该出在这里
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
根据你提供的SQL语句和错误提示,可以初步判断问题在于SQL语句中的语法错误。具体来说,是在设置in参数时,in参数值为空(null),而在SQL语句中将其作为字段名使用,导致报错。
为了解决这个问题,你需要修改SQL语句,将in参数值作为占位符的一部分传递给SQL语句,而不是将其作为字段名使用。具体来说,可以将SQL语句改为如下形式:
update tb set in = in + ?, quantity = quantity + ? where id = ?
在执行SQL语句时,分别将in参数和quantity参数作为占位符的值传递给SQL语句,例如:
PreparedStatement pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, inValue);
pstmt.setInt(2, inValue);
pstmt.setInt(3, idValue);
pstmt.executeUpdate();
这样就可以正确地执行SQL语句,将库存和入库数量累加,并更新到数据库中。
需要注意的是,在执行SQL语句时,应该确保输入的参数值不为空(null),否则会出现类似的SQL语法错误。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢
```java
quantity=quantity+in?
in?还是 in + ?
```