0

私はこれを試しました:

 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);
        }

これは私のfunc呼び出しです:

  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%確信しています。私はそれを印刷できるような列を取得しました。レイアウトでは、最初の列であるKEY_CHAR_NAME(charName)にmyPlayerが明確に表示されているので、何が問題になっていますか?

4

3 に答える 3

2

これを使って

db.update(CHARACTERS_TABLE、args、KEY_CHAR_NAME + "=?"、new String [] {charName})

于 2012-08-16T14:46:42.787 に答える
1

それ以外の

db.update(CHARACTERS_TABLE, args,  KEY_CHAR_NAME + "=" + charName, null);

これを試して

db.update(CHARACTERS_TABLE, args,  KEY_CHAR_NAME + "=" + "charName", null);
于 2012-08-16T14:43:52.010 に答える
1

文字名は引用符で囲む必要があると思います。おそらく次のようなものです:

db.update(CHARACTERS_TABLE, args,  KEY_CHAR_NAME + "=\"" + charName + "\"", null);
于 2012-08-16T14:45:44.660 に答える