SQLite - 更新多个表

时间:2015-12-18 13:42:11

标签: android sqlite android-studio android-sqlite

有人可以帮我解决问题吗?

我尝试调用函数来更新列"1"中值为"col"的多个表,但它不起作用,

创建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个小时,无法解决问题 有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:0)

尝试使用通配符来适当地注入更新参数,如下所示:

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

快速查看样品this tutorial