我在Android应用程序中更新SQLite数据库中的行时遇到问题。如果我更新两次,它只能成功运行。但是当我第三次尝试这样做时,它不再更新同一行。Android SQLite Update在调用两次后停止工作
LogCat不显示任何异常。 db.update()
返回'1'
。
我在StackOverflow和网上搜索了类似的问题。人们advic] sed从database-helper
删除db.close();
,因为我多次称它,或者使用db.update
方法代替db.rawQuery()
或db.execSQL()
。
我也在SQLite客户端测试了我的查询,它的工作原理与它应该的一样。
下面是简单的数据库的helper方法的代码:
public int updateEventDoneMark(Event event)
{
ContentValues args = new ContentValues();
args.put("completed", event.getCompleted());
return db.update("Event", args, "id" + "='" +event.getId() + "'", null);
}
有一些SQLite的相关问题,我应该知道,而我连续更新一个数据库条目几次?
您可能希望切换到位置参数:'db.update(“Event”,args,“id =?”,params);'where where String [] params = {event.getId()};'除此之外,没有神奇的东西“两个更新“限制,确保你的线程工作正常,代码实际上正在执行,等等。 – CommonsWare
@CommonsWare感谢您的快速响应!我已经尝试了您的建议,并没有产生影响 有没有任何其他线程同时改变数据,每次执行代码,每次返回'1'作为影响数ed.rows。 – antken
你的内容提供者更新和URI匹配是什么样的? –