亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

無法解決sqlite、android中WHERE附近的語法錯誤

無法解決sqlite、android中WHERE附近的語法錯誤

慕雪6442864 2023-02-23 18:18:38
我有一個帶有 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
查看完整描述

1 回答

?
白豬掌柜的

TA貢獻1893條經驗 獲得超10個贊

text在您的代碼中,您在不使用單引號的情況下為列設置值。
這可能是代碼的問題之一。
推薦的更新方式是使用ContentValues它也是sql 注入安全的:

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)

但如果你已經測試過了,那很好。


查看完整回答
反對 回復 2023-02-23
  • 1 回答
  • 0 關注
  • 104 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號