2012-09-27 128 views
0

我需要一些关于如何更新SQLite数据库中的数据的建议。现在我这样做:Android 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(); 

你可以观察到我过滤项目的两个字段。我已经看到,这可以通过where条款的论点来完成。

所以,我的问题是,哪种方法可以过滤要更新的数据?

谢谢。

回答

1

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

做起来像

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

是罚款。

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