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
相关文章推荐
- Android 查询Sqlite表中的数据时,表中必须得有_id字段,否则报错
- 查询表里某个字段10-30之间的数据且ID不是连续的
- sql 查询一个表信息 条件为该表一个字段大于对应(必须该表相对应的Id)另外一个表的总数
- sqlite里执行查询提示未启用约束、主键冲突之——数据竟能超字段长度存储
- sql server查询NodeId字段中距离某一时间最近的所有数据
- android 检测sqlite数据表中某字段(列)是否存在
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —添加查询
- android 检测sqlite数据表中字段(列)是否存在
- android: SQLite查询数据
- 待解决 --- 自定义类的类对象字段,存取器必须使用copy,否则报错!!! why???
- android中Sqlite查询的数据返回排序问题
- Sqlite查询新增数据的id
- (android之sqlite三)sql语句中查询带通配符的数据,如下划线 星号等
- android中常用的查询、插入、更新、删除等SQL语句以及SQLite数据类型
- Android开发—数据库应用—访问数据表(SQLite OpenHelper) —查询单条记录、修改
- android 检测sqlite数据表中字段(列)是否存在
- Android 中SQlite数据中简单示例的表的创建、插入和查询
- mongo里面根据对象字段的ID查询 db.Photo.find({'owner.$id':ObjectId('xxxx')}) , 并且使用forEach循环修改查询的数据
- Android sqlite数据删除解决自增id问题
- from 是sqlite的关键字,不能用作字段,否则报错