frmSingleRecord.picImage.Image = DirectCast(sdr("photo_index"), Image)这段代码来自我的MysqlDataReader,photo_index是来自数据库的Blob。我从这段代码中得到了错误。
无法将“System.Byte[]”类型的对象转换为“System.Drawing.Image”类型。
如果可能的话,DirectCast a Blob to PictureBox,我如何才能这样做呢?如果不是的话,任何建议都会很棒!
发布于 2016-09-16 14:26:01
如前所述,不能将字节数组转换为作为UI控件的PictureBox,但是可以将二进制BLOB转换为Byte(),这样就可以从它创建图像。假设您确实将Image保存为Byte()到DB:
...
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()创建图像,并将其分配给PictureBox.Image属性。这可能与您如何将数据导入DB的方式相反。
请注意,您已经创建了一个新的Image,所以当您完成它时,也要由您来处理它。
https://stackoverflow.com/questions/39525623
复制相似问题