sqlite3 обновление rawquery не работает - PullRequest
1 голос
/ 08 января 2012

все перепробовал. Это ОБНОВЛЕНИЕ не работает. Нет ошибок или что-то - это просто не обновляет таблицу.

   void SetDisable (Integer ID, boolean action){
       Integer s;
       if (action==true) s = 0; else s = 1;
       db.rawQuery("UPDATE sms SET disabled="+s+" WHERE id="+ID+"",null);  
   }

Это моя схема таблицы:

CREATE TABLE sms (id INTEGER PRIMARY KEY, fromhour INT, frommin INT, tohour INT, tomin INT, disabled INT);
sqlite>

Ответы [ 3 ]

11 голосов
/ 08 января 2012

Попробуйте это:

 db.execSQL("UPDATE sms SET disabled="+s+" WHERE id="+ID+"");  

SQL-запросы, которые возвращают таблицу (курсор), должны выполняться с rawQuery, а те, которые не возвращают таблицы, должны выполняться с execSQL

Смотрите это:

Увеличение значения записи в базе данных android / sqlite

5 голосов
/ 08 января 2012

Легко использовать метод обновления, предоставляемый классом SQLiteDatabase.

void SetDisable (Integer ID, boolean action){
    Integer s;
    if (action==true) s = 0; else s = 1;

    ContentValues cv=new ContentValues();
    cv.put(disabled, s);

    String where = "id=?";
    String[] whereArgs = {Integer.toString(ID)};

    db.update(sms, cv, where , whereArgs);   
}
0 голосов
/ 08 января 2012

Обновлено:

Попробуйте это

ContentValues cv = new ContentValues();
cv.put("disabled", s);

db.update("table_name", cv, "id="+ID, null);

ПРИМЕЧАНИЕ. Я не знаю, достаточно ли указать ТОЛЬКО то, что вам нужно изменить в cv илиВы должны поставить все атрибуты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...