![](/img/trans.png)
[英]DrawerLayout Stops working correctly after update to Android 6.0.1
[英]Android SQLite Update stops working after calling it two times
我在更新Android应用程序中SQLite数据库中的行时遇到问题。 仅当我更新两次后,它才能成功运行。 但是,当我第三次尝试执行此操作时,它不再更新同一行。
LogCat不显示任何异常。 db.update()
返回'1'
。
我已经在StackOverflow和网络上搜索了类似的问题。 人们建议删除db.close();
;。 来自database-helper
,因为我多次调用它,或者使用db.update
方法而不是db.rawQuery()
或db.execSQL()
。
我还在SQLite客户端中测试了我的查询,它按预期运行。
这是简单的数据库助手方法的代码:
public int updateEventDoneMark(Event event)
{
ContentValues args = new ContentValues();
args.put("completed", event.getCompleted());
return db.update("Event", args, "id" + "='" +event.getId() + "'", null);
}
在连续多次更新一个数据库条目时,我应该知道一些与SQLite相关的问题吗?
您的内容提供商更新和URI匹配是什么样的?
典型的内容提供程序为单个表的每个表/视图提供一个URI,其中_id作为where_argument传递,为多个行提供一个URI,使用URI和where_arguments选择要更新的行。
而且看起来您是通过id更新的。 Android确实希望使用名为“ _id”的id列,尽管我目前不认为这是您的问题,但这实际上取决于它使用的URI。 内容提供者通常使用_id进行编码,并根据_id按列为单个行选择内容提供者。 这就是为什么我想看内容提供商。 您还可以自己通过id进行选择,虽然可以实现,但这似乎不正常,但不是正常现象。 通常,where部分类似于“ colunm name =?”,下一个参数where_arguments是一个字符串数组,其中包含用于替换“?”的值。
希望这可以帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.