我的表包含 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/