关于ZAKER 融媒体解决方案 合作 加入

android cursor.getBlob 无法正常工作

CocoaChina 10-13

嗨 , 我尝试存储图像并从 sqlite 数据库检索图像 . 我的以下代码不起作用 . 我不确定我做错了什么 . 请帮忙 .

我创建数据库表如下:

db = openOrCreateDatabase ( "StudentDB", Context.MODE_PRIVATE, null ) ;db.execSQL ( "CREATE TABLE IF NOT EXISTS student ( rollno VARCHAR, name VARCHAR,photo BLOB,marks VARCHAR ) ;" ) ;

然后我插入了字段

db.execSQL ( " 插入学生值 ( ‘ "

??????????????????????editRollno.getText ( ) " ’ , ’ "

??????????????????????editName.getText ( ) " ’ , ’ "

??????????????????????imageInByte" ’ , ’ "

??????????????????????editMarks.getText ( )

??????????????????????" ’ ) ;" ) ;

其中 imageInByte 是 byte [ ] 变量 , 它是从 Gallery 之前分配的 , 如下所示:

ByteArrayOutputStream stream = new ByteArrayOutputStream ( ) ; yourImage.compress ( Bitmap.CompressFormat.PNG, 100, stream ) ; imageInByte = stream.toByteArray ( ) ;

当我尝试从数据库检索图像时失败:

Cursor c = db.rawQuery ( "SELECT * FROM student WHERE rollno='" + editRollno.getText ( ) + "'", null ) ; if ( c.moveToFirst ( ) ) { editName.setText ( c.getString ( 1 ) ) ; editMarks.setText ( c.getString ( 2 ) ) ; byte [ ] image = c.getBlob ( 3 ) ; ByteArrayInputStream imageStream = new ByteArrayInputStream ( image ) ; theImage = BitmapFactory.decodeStream ( imageStream ) ; imageView2.setImageBitmap ( theImage ) ; }

最佳答案

以上内容由"CocoaChina"上传发布 查看原文
相关标签 数据库android