在我的应用程序中,当活动被销毁时,我想将列值更新为0.为此我编写了查询,但似乎不适合我,因为当我启动应用程序时,我得到相同的旧价值观。
public void resetSelectOptions() {
database = DatabaseManager.getInstance().openDatabase();
String query = "Update " + TableName + " SET " + Selected_Option + "=0";
try {
database.rawQuery(query, null);
}
catch (SQLiteException e) {
}
DatabaseManager.getInstance().closeDatabase();
}
如何解决此问题?
答案 0 :(得分:0)
rawQuery()
仅执行查询(SELECT)
对于任何其他SQL 命令,请使用execSQL()
。
所以,只需转换此
即可database.rawQuery(query, null);
到这个
database.execSQL(query, null);
答案 1 :(得分:0)
使用此方法更新行 database.update()和 rawQuery用于选择查询。
答案 2 :(得分:-1)
rawQuery()
方法只执行SELECT查询是不正确的,但它没有必要将它用于更新,因为你没有任何结果 - 要迭代什么结果Cursor结束,所以尝试使用execSQL()
方法。有关详细信息,请查看此SO问题android.database.sqlite.SQLiteDatabase.rawQuery() is not updating a DATETIME column with a SQLite datetime() function