您的位置:首页 > 移动开发 > Android开发

Android 查询Sqlite表中的数据时,表中必须得有_id字段,否则报错

2016-11-11 09:03 309 查看


1.情况:使用外部自建表 .db 文件(自建的表,没有_id 字段),通过raw 加载/拷贝到内部存储中去。当我想去与 SimpleCursorAdapter进行关联使用的时候,即进行对库的表查询,返回Cursor结果,将结果通过Adapter.swapCursor()去置换数据源显示。会报错

05-18 15:59:20.220: E/AndroidRuntime(2601): java.lang.IllegalArgumentException: column '_id' does not exist

05-18 15:59:20.220: E/AndroidRuntime(2601):     at android.database.AbstractCursor.getColumnIndexOrThrow(AbstractCursor.java:303)
05-18 15:59:20.220: E/AndroidRuntime(2601):     at android.widget.CursorAdapter.swapCursor(CursorAdapter.java:342)


解决:将我们自己的可以当成_id字段的字段,在我们进行Select的时候,在后面跟上 AS _id. 如:
mDb.query(DBContants.DB_DEVICES_TABLE_NAME, new String[] { "DEVICEID AS _id", "DEVICENAME", "DEVICEALIAS", "DEVICETYPE","CONFSTATUS", "SCENE", "TEMPLETID", "BRAND", "MODELCODE" },
"SCENE =" + sceneType, null, null, null, null);


mDb.execSQL( " SELECT  DEVICEID  AS _id,DEVICENAME,DEVICETYPE  from " + DBContants.DB_DEVICES_TABLE_NAME  );


转自:http://blog.csdn.net/k316378085/article/details/51445639
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐