繁体   English   中英

两次调用后,Android SQLite Update停止工作

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM