Android 更新所有记录 SQLite

标签 android sqlite records

我的表包含 7 条记录。使用更新方法,我想更新具有 INTEGER 值的列。 使用 for 循环,我想用数字序列更新所有记录,但它似乎无法正常工作,因为所有记录都用循环的最后一个 (7) 更新。也许错误在 WHERE 子句中?感谢您的建议。

SQLiteDatabase datab = new DatabaseHelper(getActivity()).getReadableDatabase();

ContentValues cv = new ContentValues();
for(int i = 1; i<8; i++){
    cv.put(MyTable.NUMERAZIONE, i);
    datab.update(MyTable.TABLE_NAME, cv, MyTable.NUMERAZIONE + "!="+i, null);
}
datab.close();

我也尝试过不使用 WHERE 子句,但我得到了相同的结果:

datab.update(MyTable.TABLE_NAME, cv, null, null);

记录有7条,我想更新所有记录,不带任何子句。

最佳答案

问题出在您的 whereClause 上。

MyTable.NUMERAZIONE + "!="+i

意味着它将更新所有不等于当前 i 值的记录(在这种情况下它将更新所有记录为值 i)。

编辑

datab.update(MyTable.TABLE_NAME, cv, null, null);

每次都会更新所有行,所以这不是解决方案。

我不是 sqlite 方面的专家,但解决方案之一是获取所有行,遍历它,设置新的 i 值并在 db 上更新。

关于Android 更新所有记录 SQLite,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31344480/

相关文章:

java - SQLiteDatabase getWritableDatabase() { 抛出新的 RuntimeException ("Stub!"); }

mysql - 当我们需要 100 万个唯一变体时,代码的最佳字符长度是多少?

android - fitsSystemWindows 和 kitkat 上的额外填充

android - 如何确保我的应用程序仅适用于 Android Market 上的手机?

javascript - "Error: A reference already exists for the specified id"如何隐藏/修复此警报?

haskell - 避免 Haskell 中的 namespace 污染

union - 如何在 PureScript 中组合记录类型的行? (PureScript 0.12.0 中的 Union 类型类有什么替代品吗?)

android - android中的语音识别是如何工作的?

mysql - 如何在 Rails 3.2.12 的 SQL 比较中修剪数据库列?

java - 重构数据库Helper