未使用列上的Android错误

时间:2012-03-21 07:08:57

标签: android sqlite

我正在构建一个创建并与SQLite数据库通信的应用程序。

但是,每次应用程序与数据库建立连接时,它都会因错误而关闭。

(在我看来)相关的错误是:

03-21 07:50:29.308: E/AndroidRuntime(554): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.dummies.android.taskreminder/com.dummies.android.taskreminder.ReminderListActivity}: java.lang.IllegalArgumentException: column '_id' does not exist

03-21 07:50:29.308: E/AndroidRuntime(554): Caused by: java.lang.IllegalArgumentException: column '_id' does not exist

在我使用的教程中,ID列名为“_id”,但在使用之前我将其重命名为“ReminderID”。术语“_id”从未在我的版本中使用,将变量“ReminderID”重命名为“_id”会给我带来同样的错误。

3 个答案:

答案 0 :(得分:1)

_id是android上的约定,例如cursorAdapter需要它。

答案 1 :(得分:0)

您的数据库不必具有名为“_id”的列,但SimpleCursorAdaptor确实需要返回一个。您可以使用别名执行此操作。  _id字段用作唯一键,以确保适配器和适配器视图等可以正确处理光标处理的数据。 如果

ReminderID,XYZ ABC are your columns... then

要查询SimpleCursorAdapter,可以使用数据库rawQuery ...

执行此操作
 SELECT  ReminderID as _id,XYZ,ABC FROM MY_TABLE

答案 2 :(得分:0)

_id列不是你表,你可以把这个列或其他删除到你查询中的_id键