【发布时间】:2017-08-11 11:00:11
【问题描述】:
这是 DatabaseHelper 上的方法光标;
public Cursor updateNewQuiz(int n, String s) {
return getWritableDatabase().rawQuery("UPDATE tb_characters SET LOCKED = '" + s + "' WHERE ID = '" + n + "'", null);
}
public Cursor updateThisQuiz(int n) {
return getWritableDatabase().rawQuery("UPDATE tb_characters SET ANSWERED = '1' WHERE ID = '" + n + "'", null);
}
而且,我正在像这样在 Acticity 中调用 OnClickLIsener
int nn = Integer.parseInt(resultes0);
int s = Integer.parseInt(resultes0);
Cursor cursor = myDb.updateNewQuiz(nn+1,"1");
Cursor cursor1 = myDb.updateThisQuiz(s);
但是,我的数据库仍然没有更新...
请帮帮我....
【问题讨论】:
-
数据库中的ID是字符串还是数字?
-
数据库中的ID是INTEGER...,resultes0是来自数据库ID的getExtras.String..
-
为什么要在值周围加上引号?
-
因为我想在更新数据库时始终将值设置为“1”SET LOCKED = '" + s + "'...我对此感到非常困惑...因为 LogCat 是不显示错误...
-
rawQuery()用于 SQL 查询 (SELECT)。对于 SQL 命令(其他所有命令),请改用execSQL()。它不返回任何东西。除此之外,正如@CL 所说,如果您将 strings 传递给它们,则 numeric 值不匹配。
标签: android sqlite sql-update android-sqlite