Android使用不同的值更新多行

时间:2012-11-13 14:24:14

标签: android sqlite sql-update

我有一个包含3行_id,名称和编号的表格。我必须更新具有不同值的每一行的列号。 Actualy我的代码是:

ContentValues values;
ContentResolver cr = getContentResolver();
int n[] = new int[10];
// functions to assign the values to n[]
for(int i=1; i<31;i++) {
    values = new ContentValues();
    values.put("number", n[i]);
    cr.update(MyProvider.CONTENT_URI_TABLE, values, "_id="+i, null);
}

通过这种方式,我必须使用大量的UPDATE和多次访问数据库。有一种方法可以简化程序吗?

1 个答案:

答案 0 :(得分:7)

为此,我将在ContentResolver上使用applyBatch()方法。基本上,它采用类型ContentProviderOperation的数组来指定您正在更新/插入/删除的内容。

虽然它不会简化您正在编写的代码,但它对您正在访问的内容提供商有益。这样做的好处是内容提供商可以做一些事情,比如在事务中应用这些更新。