我需要一些关于如何在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参数完成。
所以,我的问题是,这是过滤要更新的数据的最佳方法吗?
感谢。
答案 0 :(得分:1)
如果"codigomedida = '" + codMedAdC + "'
中有'
,则不应该codMedAdC
{/ 1}}。
但是这样做
String[] whereArgs = { codMedAdC, codigoServicio };
sqliteDatabase.update("MedidasAdoptarSeleccionadas", contentValues,
"codigomedida = ? AND codigoservicio = ?", whereArgs);
很好。
如果定期执行这些更新,您可以考虑保持数据库处于打开状态。每次创建新的AndroidOpenDbHelper
并打开数据库需要一些时间。