2015-10-25 5 views
-1

Я создаю приложение на Android. И то, что я пытаюсь сделать, это добавить 1 к предыдущему значению в базе данных.SQLite: Обновление: добавление 1 к предыдущему значению

Оценка ценности столбца: 200 в базе данных.

SQLiteDatabase db = database.getWritableDatabase(); 
int resultRows = 0; 
values = new ContentValues(1); 
values.put(DBContract.Countries.SCORE, DBContract.Countries.SCORE + " + 1"); 
resultRows = db.update(DBContract.Countries.TABLE_NAME, values, DBContract.Countries.ISO + " = ?", selectionArgs); 

Фактический выход SCORE + 1 вместо 201. Таким образом, оно принимает его как String вместо добавления его. У кого-нибудь есть идеи?

ответ

2

Вы можете использовать ContentValues, чтобы предоставлять литеральные значения.

Для выражений SQL, используйте сырые SQL с execSQL():

db.execSQL("UPDATE " + DBContract.Countries.TABLE_NAME + " SET " + 
    DBContract.Countries.SCORE + "=" + DBContract.Countries.SCORE + " + 1 " + 
    "WHERE " + DBContract.Countries.ISO + " = ?", selectionArgs); 
Смежные вопросы