0

我需要一些关于如何更新 SQLite 数据库中数据的建议。现在我这样做:

public void insertadoMedidasAdoptarCorrectamente(String codMedAdC,
        String codigoServicio) {
    AndroidOpenDbHelper androidOpenDbHelper = new AndroidOpenDbHelper(this);
    SQLiteDatabase sqliteDatabase = androidOpenDbHelper
            .getWritableDatabase();

    ContentValues contentValues = new ContentValues();
    contentValues.put(AndroidOpenDbHelper.insertadoCorrectamente, 1);

    sqliteDatabase.update("MedidasAdoptarSeleccionadas", contentValues,
            "codigomedida = '" + codMedAdC + "' AND codigoservicio = '"
                    + codigoServicio + "'", null);

    sqliteDatabase.close();
}

我听说这不是更新数据的最佳方式。我认为有时它会出错。由于该代码:

sqliteDatabase.update("MedidasAdoptarSeleccionadas", contentValues,
            "codigomedida = '" + codMedAdC + "' AND codigoservicio = '"
                    + codigoServicio + "'", null);

    sqliteDatabase.close();

您可以观察到我正在按两个字段过滤项目。我已经看到这可以通过 whereclause 参数来完成。

所以,我的问题是,过滤要更新的数据的最佳方法是什么?

谢谢。

4

1 回答 1

1

你不应该这样做"codigomedida = '" + codMedAdC + "',因为如果有'in会破坏codMedAdC

但是这样做就像

String[] whereArgs = { codMedAdC, codigoServicio };
sqliteDatabase.update("MedidasAdoptarSeleccionadas", contentValues,
            "codigomedida = ? AND codigoservicio = ?", whereArgs);

很好。

如果您定期进行这些更新,您可以考虑保持数据库打开。每次新建AndroidOpenDbHelper和打开数据库都需要一些时间。

于 2012-09-27T11:54:41.540 回答