gpt4 book ai didi

java - 无法解决 sqlite、android 中 WHERE 附近的语法错误

转载 作者:行者123 更新时间:2023-12-02 09:44:00 25 4
gpt4 key购买 nike

我有一个带有 SQLite 语句的字符串,我想像这样执行..

String query = "UPDATE Inventory SET ProductName =" 
+ product.getProductName() + ", InStock =" + product.getProductInStock()
+ ", CostPrice =" + product.getProductCostPrice() + ",SellingPrice ="
+ product.getProductSellingPrice() + ", Description ="
+ product.getProductDescription() + " WHERE rowid ="
+ String.valueOf(Integer.parseInt(rowId) + 1);

db.execSQL(query);

我有一个名为 Product 的 POJO 类。rowid 是一个内置变量,对吗?我尝试了大写,但还是不行。

我收到以下错误

E/SQLiteLog: (1) near "WHERE": syntax error

最佳答案

在您的代码中,您将值设置为 text 列,而不使用单引号。
这可能是代码的问题之一。
推荐的更新方法是使用 ContentValues这也是 sql-injection安全:

ContentValues cv = new ContentValues();
cv.put("ProductName", product.getProductName());
cv.put("InStock", product.getProductInStock());
cv.put("CostPrice", product.getProductCostPrice());
cv.put("SellingPrice", product.getProductSellingPrice());
cv.put("Description", product.getProductDescription());
int result = db.update("Inventory", cv, "rowid = ?", new String[] {String.valueOf(Integer.parseInt(rowId) + 1)});

变量result将包含更新的行数。
我不确定这个值:

String.valueOf(Integer.parseInt(rowId) + 1)

但是如果你已经测试过了那就没问题了。

关于java - 无法解决 sqlite、android 中 WHERE 附近的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56824670/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com