android cursor.getBlob无法正常工作

android cursor.getBlob无法正常工作,第1张

概述嗨,我尝试存储图像并从sqlite数据库检索图像.我的以下代码不起作用.我不确定我做错了什么.请帮忙.我创建数据库表如下:db=openOrCreateDatabase("StudentDB",Context.MODE_PRIVATE,null);db.execSQL("CREATETABLEIFNOTEXISTSstudent(rollnoVARCHAR,nameVARCHAR,pho

嗨,我尝试存储图像并从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);        }

解决方法:

您不能简单地将字节数组视为文本.
(要将blob与execsql一起使用,则必须使用blob文字.)

要插入行,请使用insert method(其具有support for byte arrays).

总结

以上是内存溢出为你收集整理的android cursor.getBlob无法正常工作全部内容,希望文章能够帮你解决android cursor.getBlob无法正常工作所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1093225.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存