Android数据库更新记录

时间:2015-07-08 18:44:45

标签: 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.我在哪里错了?

1 个答案:

答案 0 :(得分:1)

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