0

我正在尝试使用 SQLite 数据库来实现删除功能。我有一个列表,其中已经有一些静态数据(Product_1、_2、_3...),然后我使用 db.insert 添加新位置。日志说

05:35:10.875    495 example.CustomAdapter   DEBUG       row inserted, ID = 2

05:35:10.885 495 示例.CustomAdapter 调试 ID = 1,名称 = 05:35:10.885 495 示例.CustomAdapter 调试 ID = 2,名称 = A1

一切都很好,添加了新职位并且可以看到。然后我用 db.delete(DBHelper.TABLE, DBHelper.COLUMN_ID + id, null); 删除 ID=1 (其中 id 从 long id = acmi.id 收到;AdapterView.AdapterContextMenuInfo acmi = (AdapterView.AdapterContextMenuInfo) item.getMenuInfo();)并且日志说没有这样的列:

05:35:27.955    495 example.CustomAdapter   ERROR   AndroidRuntime  FATAL EXCEPTION: main

05:35:27.955 495 example.CustomAdapter ERROR AndroidRuntime android.database.sqlite.SQLiteException:没有这样的列:_id5:,编译时:从mytable中删除_id5 05:35:27.955 495 example.CustomAdapter ERROR AndroidRuntime at android.database。 sqlite.SQLiteCompiledSql.native_compile(Native Method)

我究竟做错了什么?难道是因为我已经有四个位置充满了静态数据? 在此处输入图像描述

4

1 回答 1

1

请先阅读: http ://en.wikipedia.org/wiki/Column_%28database%29

然后读这个:

SQLiteException: no such column: _id5:

您没有名为 _id5 的列。您有一个名为 ID 的列,其中可能包含值 5。

要删除列 ID 包含 5的行 ( http://en.wikipedia.org/wiki/Row_(database) ):

db.delete(DBHelper.TABLE,"ID=" + id,null);

或者

db.delete(DBHelper.TABLE,"ID=?",id);

其中 id 等于 5。

于 2012-10-15T06:28:14.253 回答