2012-09-27 56 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並打開數據庫都需要一些時間。