我制作了如下表格
列:
KEY_ID(AUTOINCREMENT AND PRIMARY KEY),
KEY_DATE,
KEY_ACCOUNT_NAME,
KEY_CATEGORY,
KEY_COST,
KEY_EXPLANATION
我想更新与 KEY_ACCOUNT_NAME
匹配的行但它给了我错误..
现在我在表格中有两行 AAA , BBB ,每行 KEY_ACCOUNT_NAME 。
以下查询给出了如下错误。
(ai.getAccount_name()
是目标 KEY_ACCOUNT_NAME 值 AAA 。)
db.update(TABLE_AI, values, KEY_ACCOUNT_NAME + "=" + ai.getAccount_name(), null);
错误:
11-20 11:55:26.258: E/AndroidRuntime(1738): android.database.sqlite.SQLiteException: no such column: AAA (code 1): , while compiling: SELECT * FROM accountInfoTable WHERE account_name = AAA
我应该将主键从 KEY_ID 更改为 KEY_ACCOUNT_NAME 吗?
或者与问题无关?
答案 0 :(得分:3)
db.update(TABLE_AI, values,KEY_ACCOUNT_NAME + " = ?",
new String[] {ai.getAccount_name()});
试试这个。
答案 1 :(得分:1)
尝试将此字符串值传递给'
db.update(TABLE_AI, values, KEY_ACCOUNT_NAME + "='" + ai.getAccount_name()+"'", null);
答案 2 :(得分:1)
请尝试使用此代码,
int i=db.update(TABLE_AI, values, KEY_ACCOUNT_NAME + " =? " , new String[] {ai.getAccount_name()});
System.out.println("i="+i);
如果i> 0,那么一些更新,否则没有行更新。
答案 3 :(得分:0)
感谢您的帮助。没有你的帮助,我无法解决这个问题。
我更改了代码,将''添加到值。
db.update(TABLE_AI, values, KEY_ACCOUNT_NAME + " = " + name, null);
db.update(TABLE_AI, values, KEY_ACCOUNT_NAME + " = '" + name+"'", null);
我应该尽早向你表示感谢,但我在DBAdapter.java中遇到了类似的问题,所以我很忙于修复它。
其他答案也可以正常使用
db.update(TABLE_AI, values,KEY_ACCOUNT_NAME + " = ?",
new String[] {ai.getAccount_name()});