如何更新特定行中的SQLite数据库?

时间:2012-08-16 14:33:50

标签: android sqlite

我试过这个:

 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),所以有什么问题?

3 个答案:

答案 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);