SQLite Android обновляет определенную строку
У меня возникают проблемы при попытке обновить строку в SQlite.
Я хочу обновить строку "имя" с кем-либо с именем1 и переименовать его в Боб. Я также хочу обновить строку "возраст" для всех, кому 5 лет.
ContentValues cv = new ContentValues();
cv.put("age", "bob");
cv.put("name", "2");
database.update("tblTest1", cv, "name", null);
cursor = database.rawQuery("select age,name from tblTest1", null);
displayAllInCursor(cursor);
Когда я запускаю это, остальная часть программы работает нормально. В logcat отображается следующее сообщение:
Я / Хореограф ﹕ Пропущено 39 кадров! Приложение может выполнять слишком много работы в своем основном потоке.
Также я не уверен, как создать удаление с ContentValues. Любая помощь будет отличной. Заранее спасибо.
2 ответа
Решение
Вы просто обновите, где пункт.
String where = "name ='name1'OR age = 5" ;
ContentValues cv = new ContentValues();
cv.put("age", "bob");
cv.put("name", "2");
database.update("tblTest1", cv, where, null);
cursor = database.rawQuery("select age,name from tblTest1", null);
displayAllInCursor(cursor);
Сделать это так:
String[] args = new String[]{yourVariableName}; //this is for the condition
database.execSQL("UPDATE " + TABLENAME + " SET colum1Name='" + variable1 + "', column2Name='"+variable2+"' WHERE id=?", args);//replace id for your condition
Toast.makeText(getBaseContext(), "database updated!", Toast.LENGTH_LONG).show();