Android数据库更新记录

标签 android database sqlite

在我的数据库表中,我有 7 条记录。 现在我想通过 WHERE 子句更新记录。 首先统计记录,根据一个子句

int pos = 0;
String SQL = "SELECT COUNT(posizione) FROM operatori WHERE posizione>0;";
final Cursor cur = db2.rawQuery(SQL, null);
while (cur.moveToNext()) {
       pos = cur.getInt(0);
 }
      cur.close();

//then, with a for loop, update all the records based on a WHERE clause
for (int i = 1; i <= pos; i++) {
    ContentValues cv1 = new ContentValues();
    cv1.put(OperatoriTable.POSIZIONE, i);
    db2.update(OperatoriTable.TABLE_NAME, cv1, OperatoriTable.POSIZIONE + ">0", null);
    }
    db2.close();

但是,例如,如果 pos 等于 5,则应输入数字 1、2、3、4、5。相反,它总是插入 1。我哪里错了?

最佳答案

您的更新语句可能一次更新多行。 每次您在 for 循环中调用 db2.update 时,它可能会用当前在 中的值覆盖所有 posizione>0 的行CV1.

关于Android数据库更新记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31301130/

相关文章:

select - sqlite3 在数据库中插入和读取BLOB数据

sqlite - 如何在潮汐dk/titanium 桌面上使用预填充的数据库

android - 在 Android Grid View 中滚动不流畅

android - 更新 Android SDK 和 ADT 后出现 Ksoap2 错误

java - 如何计算任何应用程序在我的 android 手机中打开的次数?

database - ScyllaDB 上的主要压实

android - 启动 Android 模拟器失败 : QXcbConnection: Could not connect to display

javascript - 强制重新加载客户端网页 Django

mysql - 如何获取任何行的最新更新?

php - 为什么 SQLite3 错误不是异常?