0

これは些細な質問のように思えるかもしれませんが、私はまともな説明を探し、この問題を自分で解読しようとしましたが、ほとんどまたはまったく成功しませんでした. MySql データベースに保存したブロブを取得し、画像としてレンダリングして、関連する 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 に答える