2017-09-01 9 views
-1

名前(TEXT)と全体(REAL)のDBがあり、両方を変更したいのですが、私はメソッド名を取得しています。oldName、newName、double oldOverall、double newOverall 。私はこのエラーを取得更新しようとしていながらSQLiteを更新:テキストとダブルを変更する

public void updatePlayerName(String oldName, String newName, double oldOverall, double newOverall) { 
    SQLiteDatabase db = getWritableDatabase(); 
    db.execSQL("UPDATE " + TABLE_PLAYERS + " SET " + COLUMN_PLAYERNAME + " = '" + newName + "' , " + COLUMN_OVERALL + " = " + newOverall + 
      " WHERE " + COLUMN_PLAYERNAME + " = '" + oldName + "' , " + COLUMN_OVERALL + " = " + oldOverall + ";"); 
    Log.d(TAG, "UPDATE '" + oldName + "' from " + TABLE_PLAYERS + " to " + newName); 
} 

は、これが私のUpdateメソッドである

android.database.sqlite.SQLiteException: near ",": syntax error (code 1): , while compiling: UPDATE players SET playername = 'Ben' , playeroverall = 6.0 WHERE playername = 'Guy' , playeroverall = 5.0;

私はそれが""看板が、ときだと仮定しますに変更すると、メソッドによって誤ってDBが更新されます。

if i want to update "A", 3.0 to "B", 4.5 it updates to "0", 3.0.

+0

これは間違って更新されますか? – joao86

答えて

1
public void updatePlayerName(String oldName,String newName,double oldOverall, double newOverallName) { 
    String ss = String.valueOf(oldOverall); 
      SQLiteDatabase db = this.getReadableDatabase(); 
      ContentValues contentValues = new ContentValues(); 
      contentValues.put(COLUMN_PLAYERNAME , newName); 
contentValues.put(COLUMN_OVERALL , newOverall); 
      db.update(TABLE_PLAYERS , contentValues, COLUMN_PLAYERNAME + " = ?"+" AND "+COLUMN_OVERALL+ " = ?", new String[]{oldName,ss }); 
      db.close(); 
     } 
+0

ありがとう、それは働いている! – GuyShoham

+0

あなたは大歓迎です –

1

'、'の問題については、WHERE句にを使用する必要があります。

db.execSQL("UPDATE " + TABLE_PLAYERS + " SET " + COLUMN_PLAYERNAME + " = '" + newName + "' , " + COLUMN_OVERALL + " = " + newOverall + 
     " WHERE " + COLUMN_PLAYERNAME + " = '" + oldName + "' AND " + COLUMN_OVERALL + " = " + oldOverall + ";"); 

正しく更新されていない点については、どういう意味ですか?

+0

私がANDを使用した場合、メソッドはコンパイルされていましたが、 ですが、名前は「0」になり、全体的に変更されませんでした。 @Bapusaheb Shindeはすでにpeoblemを解決しました – GuyShoham

+0

彼はSETとWHERE節の両方でANDを使用していました。 –

+0

あああ...まあ、私は彼にちょうどWHERE句で使用するように言った:) – joao86

関連する問題