您好,
通过与产品组的沟通已确认该问题产生的原因是: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下载(下载之后,修改数据库路径,就可以运行了):
|