0

我得到了我的 sqlite 数据库,其中有一些数据,但我在这个博客(http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/)中读到表必须有一个名为 _id 的行,以便 android 可以绑定该字段(不确定这意味着什么)但我发现这很麻烦,因为它的数据库有点复杂,所以我想知道我是否真的必须修改我的数据库或者还有其他方法来解决这个问题。

4

2 回答 2

1

如果您使用CursorAdapter或其任何子类,Cursor则必须有一个_id整数列,最好是唯一的。

您的选择是:

  1. 添加_id(例如,作为AUTOINCREMENT列)到您的表中并将其包含在您的查询中

  2. ROWID重命名查询中表中的某些列,例如 SQLite's (例如SELECT ROWID AS _id, ... FROM table WHERE ...),因为重要的是Cursor

  3. _id尝试为(例如, )返回一个固定值SELECT _id=0, ... FROM table WHERE ...,尽管我从未尝试过,也不知道它是否有效

  4. 不要使用CursorAdapter或其任何子类

于 2013-03-25T19:59:30.047 回答
0

不,您绝对可以继续使用您的数据库。

至于“_id”字段,在许多适配器中使用它来找到放置项目的正确位置(例如在列表和微调器中),但也有解决方法可以解决它的缺失,而且它们只需要访问您的数据。

缺少 _id 的常见解决方案,顺便说一句,使用如下查询重命名行的索引(如果它存在且不称为“_id”):

SELECT index AS _id IN table;

希望这可以帮助。

于 2013-03-25T20:01:59.337 回答