我正在尝试更新一行表中的2个值,这些值还包含另外7个未更改的值。 更新代码:
public int UpdateItem(int tableId, String itemname, String modifiername, int count, double totalPrice) {
SQLiteDatabase db = this.getWritableDatabase();
ContentValues values = new ContentValues();
values.put(DbSchema.ORDERED_ITEM_QUANTITY, count);
values.put(DbSchema.ORDERED_ITEM_TOTAL_PRICE, totalPrice);
return db.update(DbSchema.KOT_TABLE, values, DbSchema.TABLE_ID + " = " + tableId +
" AND " + DbSchema.ORDERED_ITEM_NAME + " = '" + itemname +
"' AND " + DbSchema.ORDERED_ITEM_MODIFIER_NAME + " = '" + modifiername + "'",
null);
}
通过适配器的项目单击来调用更新:
holder.incrementButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
int count = Integer.parseInt(holder.itemCount.getText().toString());
holder.itemCount.setText("" + (count + 1));
filteresKotItemArrayList.get(position).setOrderedItemQuantity(count + 1);
Double totalPrice = Double.parseDouble(holder.totalAmount.getText().toString()) + kotItem.getOrderedItemBasePrice();
holder.totalAmount.setText(String.valueOf(totalPrice));
filteresKotItemArrayList.get(position).setOrderedItemTotalPrice(totalPrice);
dbOpenhelper.UpdateItem(kotItem.getTableId(), kotItem.getOrderedItemnme(), kotItem.getOrderedItemModifierName(), (count + 1), totalPrice);
notifyDataSetChanged();
}
});
在模型类中,它正在工作,但是db没有更新。当我通过更新db重新打开当前列表时,它没有更新它们。
kotItemList = dbOpenhelper.getKOTList(tableId);
没有显示错误。我该如何更新该行 也使用查询来做到这一点,但没有结果。
String strSQL = "UPDATE " + DbSchema.KOT_TABLE + " SET " +
DbSchema.ORDERED_ITEM_QUANTITY + " = " + count + ","
+ DbSchema.ORDERED_ITEM_TOTAL_PRICE + " = " + totalPrice +
" WHERE " + DbSchema.TABLE_ID + " = " + tableId +
" AND " + DbSchema.ORDERED_ITEM_NAME + " = '" + itemname +
"' AND " + DbSchema.ORDERED_ITEM_MODIFIER_NAME + " = '" + modifiername + "'";
db.execSQL(strSQL);
答案 0 :(得分:0)
检查导致问题的where子句。 尝试只使用where子句--- DbSchema.ORDERED_ITEM_NAME =“xyz”更新值。 另请检查表格中是否存在DbSchema.ORDERED_ITEM_NAME值