[英]Retrieving a BLOB type into Byte
SQLiteDatabase DB = this.getReadableDatabase(); ImageModel ImageModel = new ImageModel();
所以这是我的片段
Cursor Cursor = DB.rawQuery("SELECT ImageFile FROM Image WHERE ID = '1'", null);
if(Cursor.getCount() < 1) {
System.out.println("NO DATA");
}else {
System.out.println("HAVE DATA");
byte[] byteArray = Cursor.getBlob(1);
ImageModel.setImage(BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length));
}
我从这个代码中得到一个错误
byte[] byteArray = Cursor.getBlob(1);
Caused by: android.database.CursorIndexOutOfBoundsException: Index -1 requested, with a size of 1
您必须使用moveToFirst()
以便将Cursor
的索引定位到第一行(如果存在),而不是1
使用0
作为getBlob()
的索引,因为列索引是基于0
的:
Cursor cursor = DB.rawQuery("SELECT ImageFile FROM Image WHERE ID = '1'", null);
if(!cursor.moveToFirst()) {
System.out.println("NO DATA");
} else {
System.out.println("HAVE DATA");
byte[] byteArray = cursor.getBlob(1);
ImageModel.setImage(BitmapFactory.decodeByteArray(byteArray, 0, byteArray.length));
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.