sqlite3 rawquery更新不起作用

时间:2012-01-08 10:42:31

标签: android sqlite

尝试了一切。此更新不起作用。没有错误或什么 - 它只是没有更新表。

   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 个答案:

答案 0 :(得分:11)

试试这个:

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

返回表(游标)的SQL查询将使用rawQuery运行,而那些不返回表的SQL查询将使用execSQL运行

请参阅:

Increase the value of a record in android/sqlite database

答案 1 :(得分:5)

使用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);   
}

答案 2 :(得分:-1)

<强>更新

试试这个

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

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

注意:我不知道是否仅仅需要在cv中更改您需要更改的内容,或者您​​必须放置所有属性。