0

这似乎是一个微不足道的问题,但是我已经寻找了一个体面的解释,并试图自己破译这个问题,但几乎没有成功。我希望检索存储在 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
4

1 回答 1

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 作为您的图像

于 2013-06-17T06:04:01.977 回答