DirectCast MySQL 到 PictureBox BLOB

标签: Vb.net MySQL .Net
发布时间: 2017/4/8 14:47:53
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.
frmSingleRecord.picImage.Image = DirectCast(sdr("photo_index"), Image)

这段代码是从我 MysqlDataReaderphoto_indexBlob 从我的数据库。我从这段代码有错误。

无法强制 'System.Byte []' 类型的对象转换为类型载入原'。

如果可以通过 DirectCast Blob 到 PictureBox 我可以怎样做这项权利?如果不进行任何建议将伟大 !

解决方法 1:

正如所指出的你不能投到一个字节数组 PictureBox 是 UI 控件,但是你可以投到二进制 BLOB Byte() 所以你可以利用它创建的图像。 假设你救了 Image 作为 Byte() 对数据库︰

...
If rdr.Read() Then
    buff = TryCast(rdr.Item(1), Byte())
    If buff IsNot Nothing Then
        Using ms As New MemoryStream(buff)
            pBox.Image = Image.FromStream(ms)
        End Using
    End If
End If

第一, TryCast 试图强制字段转换为 Byte() 以避免异常,这可能发生如果只有某些行对他们来说有图像数据。 如果演员工作,从创建映像 Byte() 使用 MemoryStream 和分配给 PictureBox.Image 属性。 这可能是相反的你怎么进入 DB 数据。

请注意您已经创建了一个新 Image ,所以,它是由你来时你做它也释放它。

赞助商