我想要的是在Sqlite android中添加和删除现有值的新值 . 我从android文档中读到的是这种方法,但它在我的情况下不起作用,因为它正在使用提供的新值删除现有值 .
这是我的代码:
public boolean updateCigaretteStock(String cigaretteName, int quantity, int totalCost) {
ContentValues values = new ContentValues();
values.put(CigaretteStockEntry.COLUMN_QTY, quantity);
values.put(CigaretteStockEntry.COLUMN_TOTAL_COST, totalCost);
String whereClause = CigaretteStockEntry.COLUMN_CIGARETTE_NAME + " = ?";
String[] whereArgs = {cigaretteName};
int rowAffected = writableDatabase.update(CigaretteStockEntry.TABLE_NAME, values, whereClause, whereArgs);
return (rowAffected > 0);
}
我也试过修改方法:
public boolean updateCigaretteStock(String cigaretteName, int quantity, int totalCost) {
ContentValues values = new ContentValues();
values.put(CigaretteStockEntry.COLUMN_QTY, CigaretteStockEntry.COLUMN_QTY + " + " + quantity);
values.put(CigaretteStockEntry.COLUMN_TOTAL_COST, CigaretteStockEntry.COLUMN_TOTAL_COST + " + " + totalCost);
String whereClause = CigaretteStockEntry.COLUMN_CIGARETTE_NAME + " = ?";
String[] whereArgs = {cigaretteName};
int rowAffected = writableDatabase.update(CigaretteStockEntry.TABLE_NAME, values, whereClause, whereArgs);
return (rowAffected > 0);
}
但它也不起作用 . 它显示列中的值,例如:
(quantity + new value)
(total_cost + new value)
有帮助吗?
2 回答
尝试修改您的代码,如下所示:
上面的代码用新的代码覆盖旧值 . 如果要添加旧值而不是首先读取旧值,而不是将其添加到新值而不是传入内容值 .
如果我正确理解您的问题,您将尝试沿着以下查询的行增加某些列值:
您使用的特定API的问题是它只允许在给定列中进行clobbering(完全覆盖)值 . 但是,您希望实际使用已存在的值作为更新的一部分 .
在这种情况下,我建议只使用SQLite Android的预处理语句API: