我一直在努力只更新SQlite数据库表中的一行。
虽然我在ContentUris.withAppendedId Uri中提供了我想要更新的行的_id值,但仍然需要检查update语句的'WHERE'部分是否记录的id是相同的。
当我将update语句的'WHERE'部分留给'null'时,update语句尝试更新表的所有行,而不是仅更新具有提供的id的行。
答案 0 :(得分:1)
URI定义资源。它们没有定义可以对该资源进行哪些操作。
关于ContentProvider
(因为您已将其包含在问题的代码中),您需要考虑具有ContentProvider
的应用和希望访问或修改的应用它的数据可能不是同一个应用程序。如果要实现ContentProvider
,则需要识别所提及类型的URI并相应地调整WHERE子句,假设您支持该资源上的操作。
另一个用途是使用插入操作,其中返回的典型事项是刚插入的项目的URI。例如。在URI content://authority/directory
上成功插入会返回content://authority/directory/_id
之类的内容,其中_id是新插入行的ID。