【问题标题】:Android SQLite update items with whereclause带有 whereclause 的 Android SQLite 更新项目
【发布时间】:2012-09-27 19:54:41
【问题描述】:

我需要一些关于如何更新 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 参数来完成。

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

谢谢。

【问题讨论】:

    标签: android database sqlite filtering


    【解决方案1】:

    你不应该这样做"codigomedida = '" + codMedAdC + "',因为如果codMedAdC 中有',那将会中断。

    但是这样做

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

    没问题。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-04
      • 1970-01-01
      • 2017-06-03
      • 1970-01-01
      • 1970-01-01
      • 2022-09-23
      相关资源
      最近更新 更多