我试过这个:
public void updateCharacter(String charName, int level, int stamina)
{
ContentValues args = new ContentValues();
//args.put(KEY_CHAR_NAME, charName);
args.put(KEY_LEVEL, level);
args.put(KEY_STAMINA, stamina);
db.update(CHARACTERS_TABLE, args, KEY_CHAR_NAME + "=" + charName, null);
}
这是我的功能:
db.updateCharacter("myPlayer", 2, 2);
获得此例外:
android.database.sqlite.SQLiteException: no such column: myPlayer: , while compiling: UPDATE characters_table SET level=?, stamina=? WHERE charName=myPlayer
我99%肯定我有这样一个列我可以打印出来,我在一个布局中看到它在第一列肯定得到了myPlayer,这是KEY_CHAR_NAME(charName),所以有什么问题?
答案 0 :(得分:2)
使用此
db.update(CHARACTERS_TABLE,args,KEY_CHAR_NAME +“=?”,new 串[] {CHARNAME})
答案 1 :(得分:1)
而不是
db.update(CHARACTERS_TABLE, args, KEY_CHAR_NAME + "=" + charName, null);
试试这个
db.update(CHARACTERS_TABLE, args, KEY_CHAR_NAME + "=" + "charName", null);
答案 2 :(得分:1)
我希望您需要将字符名称放在引号中。可能类似于:
db.update(CHARACTERS_TABLE, args, KEY_CHAR_NAME + "=\"" + charName + "\"", null);