【发布时间】:2019-06-30 11:57:52
【问题描述】:
我有一个带有 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
【问题讨论】:
-
什么是
String.valueOf(Integer.parseInt(rowId) + 1)?或者你希望它做什么? -
@tomerpacific,结尾部分是字符串,不需要。
-
@forpas rowId 是一个字符串,但它包含一个数字,我将其转换为数字然后加 1,后来我将其转换回字符串,因为它是字符串变量的一部分。
-
1) 将
query的值打印出来会更容易发现问题。将其添加到问题中。 2)您应该使用PreparedStatement而不是使用“字符串抨击”来构造查询。 -
(我敢打赌,产品描述是一个字符串,这很混乱,因为您在 SQL 字符串抨击中没有在它周围加上引号。)
标签: java android sqlite android-sqlite