当静态数据已存在于List中时,SQLite创建和删除行

时间:2012-10-15 06:04:01

标签: android sqlite

我正在尝试用SQLite数据库阻止删除功能。我有一个已经有一些静态数据的列表(Product_1,_2,_3 ...),然后我用db.insert添加新的位置。记录说

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

05:35:10.885 495 example.CustomAdapter DEBUG ID = 1,name = 05:35:10.885 495 example.CustomAdapter DEBUG ID = 2,name = A1

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

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 :,编译时:DELETE FROM mytable WHERE _id5 05:35:27.955 495 example.CustomAdapter ERROR AndroidRuntime at android.database.sqlite.SQLiteCompiledSql.native_compile(Native Method)

我做错了什么?可能是因为我已经有四个位置充满了静态数据? enter image description here

1 个答案:

答案 0 :(得分: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.