这可能看起来像一个微不足道的问题,但是我已经找到了一个不错的解释,并试图自己破译这个问题,几乎没有成功。我希望检索我存储在MySql数据库中的blob,将其渲染为图像,并将其显示为关联的ASPX页面中的图像。我没有使用图片框。如果有一个我没见过的资源,我会接受它作为答案并为重复的问题道歉。我无需建立连接的帮助。
编辑:这是我最近一直在使用的内容,除了将文件流发送到我无权写入文件的目录。错误发生在Image.FromStream(lstr)
Dim Query As String = "Select PIC from USERS where ID = 1"
Dim adapter As New MySql.Data.MySqlClient.MySqlDataAdapter
adapter.SelectCommand = New MySql.Data.MySqlClient.MySqlCommand(Query, connection)
Dim Data As New DataTable
Dim commandbuild As New MySql.Data.MySqlClient.MySqlCommandBuilder(adapter)
adapter.Fill(data)
Dim lb() As Byte = Data.Rows(Data.Rows.Count - 1).Item("PIC")
Dim lstr As New System.IO.MemoryStream(lb)
Dim X As Image = Image.FromStream(lstr)
lstr.Close()
Return X
答案 0 :(得分:1)
在这种情况下,http://msdn.microsoft.com/en-us/library/93z9ee4x.aspx表示您必须在图片的生命周期内保持流打开。
所以你必须删除lstr.Close()
你不再需要处理lstr
之后就可以这样做了。
再次编辑:
更改了此
Dim lstr As New System.IO.MemoryStream(lb)
Dim X As Image = Image.FromStream(lstr)
lstr.Close()
到
Dim lstr As New System.IO.MemoryStream(lb)
Dim X As Image = Image.FromStream(lstr)
Dim X2 As Image = X
x.Dispose
lstr.Close()
然后您可以使用X2作为您的图像