SQLite cursor.getCount()>0但是cursor.moveToFirst得到FALSE

兰小陵 2018-08-29 11:51:33
我的数据库是这样的,里面只有一张pic的表,存储了图片的二进制码,列名是picture
create table pic(picture Blob)

现在我已经插入了两条数据,然后想把图片读出来
Cursor cursor = db_test.rawQuery("select picture from pic",null);
if (cursor != null && cursor.getCount() > 0){
Toast.makeText(this,"读取图片成功:" + cursor.getCount(),Toast.LENGTH_SHOW).show();
}

显示的结果是“读取图片成功:2”,也就是说表里确实有两条数据,cursor已经读到了,但是一旦要读取cursor里的数据就出错,于是我改动了一下代码
Cursor cursor = db_test.rawQuery("select picture from pic",null);
if (cursor != null && cursor.getCount() > 0 && cursor.moveToFirst()){
Toast.makeText(this,"读取图片成功:" + cursor.getCount(),Toast.LENGTH_SHOW).show();
}
else {
Toast.makeText(this,"读取图片失败" ,Toast.LENGTH_SHOW).show();
}

得到的结果是“读取图片失败”,也就是说cursor.moveToFirst()返回的是FALSE,求大神指点,这是为什么啊?明明cursor里有两条数据,但是不能moveToFirst()也不能moveToNext(),纠结了好久了还没解决。
...全文
1059 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
兰小陵 2018-08-31
  • 打赏
  • 举报
回复
求大神帮忙啊啊啊啊啊啊~~~~
兰小陵 2018-08-29
  • 打赏
  • 举报
回复
求大神帮忙啊啊啊啊啊啊~~~~
Android数据库实验全文共7页,当前为第1页。Android数据库实验全文共7页,当前为第1页。实验报告 Android数据库实验全文共7页,当前为第1页。 Android数据库实验全文共7页,当前为第1页。 实验项目:Android数据库实验 一、实验目的 1、理解Android中常用的数据存储方式及各自特点; 2、掌握Sqlite数据库的相关操作; 3、掌握编程访问Sqlite数据库的方法; 二、实验原理 1、数据存储方式:SharedPreferences、文件、数据库等; 2、Sqlite数据库访问; 三、实验步骤、数据记录及处理 1、手动操作Sqlite数据库; 2、编程访问Sqlite数据库,实验用户登录、注册等基本功能; 1.定义数据库MySQLiteOpenHelper继承父类SQLiteOpenHelper写基本操作要用的方法并建立相关的类。相关代码如下: MySQLiteOpenHelper.java: public class MySQLiteOpenHelper extends SQLiteOpenHelper { public static final String DATABASE_NAME = "S.db"; public static final String TABLE_NAME = "S_table"; public static final String COL_1 = "ID"; public static final String COL_2 = "NAME"; public static final String COL_3 = "PASSWORD"; public MySQLiteOpenHelper(Context contect) { super(contect, DATABASE_NAME, null, 1); } @Override public void onCreate(SQLiteDatabase db) { db.execSQL("CREATE TABLE " + TABLE_NAME + "(ID INTEGER PRIMARY KEY AUTOINCREMENT,NAME TEXT,PASSWORD TEXT)"); } @Override public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME); Android数据库实验全文共7页,当前为第2页。Android数据库实验全文共7页,当前为第2页。 } public Integer deleteData(String id) { SQLiteDatabase db = this.getWritableDatabase(); int i = db.delete(TABLE_NAME, "ID=?", new String[]{id}); return i; } public boolean find(User userpeople){ SQLiteDatabase db = this.getWritableDatabase(); User[] user =queryAllData(); if(user==null)return false; for(User i:user){ if(i.name.equals(userpeople.name)&& i.password.equals(userpeople.password)){ return true; } } return false; } public User[] queryAllData() { SQLiteDatabase db = this.getWritableDatabase(); Cursor results = db.query(TABLE_NAME, new String[] { COL_1,COL_2, COL_3},null,null,null,null,null); return ConvertToPeople(results); } private User[] ConvertToPeople(Cursor cursor){ int resultCounts = cursor.getCount(); if (resultCounts == 0 "" !cursor.moveToFirst()){ return null; } User[] user = new User[resultCounts]; for (int i = 0 ; i

2,209

社区成员

发帖
与我相关
我的任务
社区描述
其他数据库开发 其他数据库
社区管理员
  • 其他数据库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧