1、程序中用到了sqlite,结果运行时报错如下:
2、网上搜索一番,出现该错误原因是:
使用Cursor相关的Adapter时需要一个自增的列,且名字必需为 _id。而我创建的表里没有这个字段,只有一个名为id的自增列。
3、解决办法:
1)创建数据表时插入一个名为_id的列,类型为自增量,因为在使用Cursor相关的Adapter时需要用到这个列
2)如果实在不需要这个列的话,可以把数据表中某一列使用AS映射为 _id,再进行操作
如,我有一个表, 表中两个字段分别为id, 和jokeContent, 现在我想用一个SimpleCursorAdapter来把这个表中的数据显示到一个listView上,注意其中有"id as _id", 以及new String[]{"_id", "jokeContent"}.
ListView lv = getListView();
lv.setOnItemClickListener(this);
SQLiteDatabase db = .....;
Cursor result = db.query("jokesExport", new String[]{"id as _id", "jokeContent"}, null, null, null, null, null);
startManagingCursor(result);
if (result != null) {
SimpleCursorAdapter la = new SimpleCursorAdapter(this, R.layout.customcell, result, new String[]{"_id","jokeContent"}, new int[]{R.id.mytext1, R.id.mytext2});
lv.setAdapter(la);
}
// 然后就能把这个已经存在的数据库用listView显示出来了