2011-11-12 9 views
1

私が使用して行を更新しようとしています:Androidでは、なぜSQLiteデータベースは更新されませんか?

myDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "=" + mName, null);

が、私は次のエラーを取得:

ERROR /データベース(282):UPDATE peopleTable SET persons_nameを使用してエラー更新persons_name =ボブ=? WHERE persons_name =ボブ

私が更新を試みるように、次のコードを使用しています:

public void updateEntry(String mName) throws SQLException { 

    ContentValues cvUpdate = new ContentValues(); 
    cvUpdate.put(KEY_NAME, mName); 
    ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "=" + mName, null); 

} 

を私はこの問題に似ているように見える他の回答を見てきましたが、私は解くこと決定的な何かを発見していません私が持っている問題。変数と関係があると思われますが、私は完全に間違っている可能性があります。

+0

代わりのKEY_NAME + "=" + MNAME + + MNAMEまたはKEY_NAME "のような" KEY_NAMEを使用しよう+ "=" + "'" + mName + "'" +またはそのようなもの –

答えて

5

文字列を引用符で囲んでいません。

ourDatabase.update(DATEABASE_TABLE, cvUpdate, KEY_NAME + "= ?", new String[]{mName}); 

あなたは上記を使用するときに型が文字列であれば、それは自動的に単一引用符でのparamを同封します:あなたはこのような何かをやったほうが良いです。

4

"persons_name =ボブは" おそらく "persons_name = 'ボブ" である必要があり、そうしてみてください:

ourDatabase.update(DATABASE_TABLE, cvUpdate, KEY_NAME + "='" + mName + "'", null); 
関連する問題