通过cursor取得数据为什么总出现异常

MoriMolly 2017-11-10 04:37:42
表格是这样的
 public static final String CREATE_Users = "create table Users ("

+ "id integer primary key autoincrement, "

+ "username text, "

+ "password integer)";



主程序取得数据是这样的
                   SQLiteDatabase db = helper.getWritableDatabase();

Cursor cursor = db.query("Users",
new String[]{"password"},
"username = ?",
new String[]{username.toString()},//这里的username是getText()的text内容
null,null,null);

boolean state = false;

// int mima = cursor.getInt(0);//这句话有问题,注释了就不会报异常


搞不懂,刚开始学数据库,不太理解。请帮小弟看一下。谢谢~

...全文
222 3 点赞 打赏 收藏 举报
写回复
3 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
邹言 2017-11-15
建议别用SQLiteOpenHelper,推荐一下LitePal或者GreenDao,简单轻巧并且不会出现楼主上面的问题
  • 打赏
  • 举报
回复
jklwan 2017-11-13

db.query("Users",
        new String[]{"password"},
         "username = ?",
         new String[]{username.toString()},//这里的username是getText()的text内容
         null,null,null);
第一个参数是表名,第二个表示查询出来的列,第三四个是查询条件。这个语句查询出来的是密码,getInt肯定报错。 先判断有没有数据,再使用String password = cursor.getString(0);获取密码。
  • 打赏
  • 举报
回复
yuhuaijun 2017-11-10
可以参考以下:getInt(0)是指id,前提要有数据,可以通过movetoNext来判定是否有数据 try { while (cursor.moveToNext()) { int mina = cursor.getInt(0) } } catch (Exception e) { } finally { if (cursor != null) { cursor.close(); } }
  • 打赏
  • 举报
回复
相关推荐
发帖
Android
加入

7.9w+

社区成员

移动平台 Android
申请成为版主
帖子事件
创建了帖子
2017-11-10 04:37
社区公告
暂无公告