2015-12-18 81 views
-2

誰能幫我固定在我的查詢問題?SQLite的 - 更新多個表

我試圖調用一個函數來更新其在"col"列的"1"值的多個表,但它不工作,

創建my_function

public long updateNow() { 
     mDbHelper = new DatabaseHelper(mContext); 
     mDb = mDbHelper.getWritableDatabase(); 

     int doneClear = 0; 
     String base_value = "1"; // update all column "col" where value of 1 

     ContentValues initialValues = new ContentValues(); 
     initialValues.put("col", "0"); // Update all column "col" with 0 

     doneClear = mDb.update(SQLITE_TABLE_ONE, initialValues, "col=" + base_value, null); 
     doneClear = mDb.update(SQLITE_TABLE_TWO, initialValues, "col=" + base_value, null); 
     doneClear = mDb.update(SQLITE_TABLE_THREE, initialValues, "col=" + base_value, null); 
     doneClear = mDb.update(SQLITE_TABLE_FOUR, initialValues, "col=" + base_value, null); 
     doneClear = mDb.update(SQLITE_TABLE_FIVE, initialValues, "col=" + base_value, null); 
     doneClear = mDb.update(SQLITE_TABLE_SIX, initialValues, "col=" + base_value, null); 
     Log.w(TAG, Integer.toString(doneClear)); 
     return doneClear; 
    } 

此代碼不能正常工作,我不明白爲什麼。
什麼也沒有發生在col列。

無論如何,該代碼是基於我以前的查詢,這是工作的罰款。

working_update_query

public long updates(String recent_value, String _id, String table_name) { 
     ContentValues initialValues = new ContentValues(); 
     initialValues.put("recent_value", recent_value); 
     Log.w(TAG, String.valueOf(initialValues) + " WITH ID OF " + _id + " IN TABLE OF " + table_name); 
     return mDb.update(table_name, initialValues, "_id=" + _id, null); 
    } 

我在這裏停留了將近1個小時,不能找出問題。
任何人都可以幫助我嗎?

+0

嚴重...你應該盯在'「_id =」 + _id',直到你得到它... **下一次定義** *它不工作* – Selvin

回答

0

試試這個使用通配符適當地注入更新的參數,如:

int updateCount = db.update(
    TABLE_NAME, 
    newValues, 
    "col = ?", 
    new String[] {String.valueOf(colValue)} 
); 

對於一個快速樣品檢出this tutorial

+0

謝謝!得到它了! – bernzkie