更新SQLite:更改文本和双重
我有名称(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);
}
,而我试图更新我得到这个错误:
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;
我认为它是“”迹象,但是当我将其更改为和,该方法错误地更新了我的数据库,例如:
if i want to update "A", 3.0 to "B", 4.5 it updates to "0", 3.0.
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();
}
谢谢,它的工作! – GuyShoham
你是最受欢迎的 –
为了与问题“”你必须在WHERE子句中使用和。
db.execSQL("UPDATE " + TABLE_PLAYERS + " SET " + COLUMN_PLAYERNAME + " = '" + newName + "' , " + COLUMN_OVERALL + " = " + newOverall +
" WHERE " + COLUMN_PLAYERNAME + " = '" + oldName + "' AND " + COLUMN_OVERALL + " = " + oldOverall + ";");
关于不正确更新,你是什么意思?
你是什么意思,它更新不正确? – joao86