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();
Другие вопросы по тегам