muhuiru 发表于 2016-6-1 15:39:16

报表图像绑定Sqlite数据库二进制图片

本帖最后由 Lenka.Guo 于 2016-6-1 17:17 编辑


绑定sqlite blob二进制图片不显示

Lenka.Guo 发表于 2016-6-1 17:04:07

您好,谢谢您的反馈,问题已经重现,已经将该问题以高优先级反馈给产品组,有解决方案会立即给您回复。

Lenka.Guo 发表于 2016-6-6 13:54:20

您好,
通过与产品组的沟通已确认该问题产生的原因是:SQLite ODBC 驱动,将二进制流返回成了字符串类型,导致图片无法显示,现有的解决方案是,将字符串通过脚本,将字符串转回 二进制。
Public Function BlobToByte(ByVal x) As Byte()
        Dim oleObject As Byte() = HexToByte(x.Substring(2, x.Length - 3))'remove envelope sqlite
       
        Dim image As Byte() = New Byte(oleObject.Length - 78) {}
        Array.Copy(oleObject, 78, image, 0, oleObject.Length - 78) ' remove header Bitmap Image Paint.Picture
       
        Return image
End Function


Function HexToByte(ByVal hex As String) As Byte()
        Dim bytes As Byte() = New Byte(hex.Length \ 2) {}
        For i As Integer = 0 To hex.Length - 2 Step 2
                bytes(i / 2) = Convert.ToByte(hex.Substring(i, 2), 16)
        Next
        Return bytes
End Function
然后在设置TextBox的Value来调用脚本代码:=code.BlobToByte(Fields!Picture.Value)


Demo下载(下载之后,修改数据库路径,就可以运行了):



muhuiru 发表于 2016-6-6 16:44:51

好的 谢谢:)

Lenka.Guo 发表于 2016-6-6 17:16:55

本帖最后由 Lenka.Guo 于 2016-6-6 17:19 编辑

muhuiru 发表于 2016-6-6 16:44
好的 谢谢
不客气~~:itwn:谢谢您的反馈奖励1000金币~~
页: [1]
查看完整版本: 报表图像绑定Sqlite数据库二进制图片