我正在尝试用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)
我做错了什么?可能是因为我已经有四个位置充满了静态数据?
答案 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.