我是android的新手,我正在尝试使用这些代码来更新条目的值:
"Update " + TableIncomeCategory + " Set " + Income_Cat_currentAmount + " = " + "'" + Income_Cat_currentAmount + "'"
+ "+" + "'"+tran.getAmount()+"'" + " where " + Income_category_name + " LIKE " + "'" + tran.getCategory() + "'");
我正在尝试将当前数量(Income_Cat_currentAmount
)与代码运行的新值(tran.getAmount()
)相加而不会崩溃,但每次运行时,新值都会替换旧值而不是加在一起。谁能告诉我为什么以及如何解决它?非常感谢!!
答案 0 :(得分:3)
您的问题是格式化。 SQL命令最终如下:
Update IncomeCategoryTab
Set currentAmount = 'currentAmount'+'123'
where category_name LIKE 'some category'
这是错误的,因为您要将一个字符串附加到另一个字符串。
您不能引用列名,也不应引用非字符串的值:
Update IncomeCategoryTab
Set currentAmount = currentAmount + 123
where category_name LIKE 'some category';
在Java中,您应该使用字符串值的参数(如类别名称)以避免必须正确引用它们(如果它们可以包含引号则会变得更复杂):
db.execSQL("Update "+TableIncomeCategory+
" Set "+Income_Cat_currentAmount+" = "+Income_Cat_currentAmount+" + "+tran.getAmount()+
" where "+Income_category_name+" LIKE ?;",
new Object[]{ tran.getCategory() });