Android Can';t更新SQLite表中的一行
我试图更新SQLite表中的某一行,但它就是不起作用 以下是更新它的方法:Android Can';t更新SQLite表中的一行,android,database,sqlite,Android,Database,Sqlite,我试图更新SQLite表中的某一行,但它就是不起作用 以下是更新它的方法: public void setMarkerDone(DestinationMarker destinationMarker) { String query = "UPDATE " + DatabaseManager.MARKER_TABLE_NAME + " SET " + DatabaseManager.MARKER_STATUS + "
public void setMarkerDone(DestinationMarker destinationMarker) {
String query = "UPDATE " + DatabaseManager.MARKER_TABLE_NAME
+ " SET " + DatabaseManager.MARKER_STATUS + "=" + DatabaseManager.MARKER_STATUS_INACTIVE
+ " WHERE " + DatabaseManager.MARKER_ID + "=" + destinationMarker.getId() + ";";
Log.i("TAG", query);
open();
sqLiteDatabase.rawQuery(query, null);
close();
}
这是我调用此方法时的日志输出:
I/TAG﹕ 更新标记集状态=0,其中id=1
W/SQLiteConnectionPool﹕ 数据库“/data/data/com.matejhacin.travelbuddy/databases/travelbuddy”的SQLiteConnection对象泄漏!请修复应用程序以正确结束正在进行的事务,并在不再需要时关闭数据库
我不明白,因为正如你所看到的,我正在关闭数据库,它不应该泄漏
并且SQL的格式正确(参见日志输出第一行)
应用程序没有崩溃或发生任何事情,只是没有更改我的SQLite表中的行。使用execSQL()
而不是rawQuery()
进行更新
查询
rawQuery()
只编译SQL而不运行它。当返回的光标移动时,它会逐步运行
execSQL()
编译并运行SQL。Logcat本身会在不再需要时正确关闭数据库。