データベースから画像を取り出す

私は従業員のリストを表示するプロジェクトに取り組んでいます。ここでは、従業員の情報と写真が表示されます。私のプロジェクトではリストボックスに従業員のリストが表示され、従業員をダブルクリックすると、その人のプロフィールがテキストボックスに表示されます。私の問題は、自分の写真を picturebox に表示させることができないことです。私は自分のID、名前、およびプロフィールと一緒に自分の画像をデータベースのテーブルに保存しました。 表の最初の従業員の画像のみを表示します。誰でも私を助けることができますか?

ここに私がすでに行ったことがあります:

私はリストボックスを作成した:

Call Connect() 
    With Me
        STRSQL = "Select employee_name from Employees"
        Try
            myCmd.Connection = myConn
            myCmd.CommandText = STRSQL
            reader = myCmd.ExecuteReader
            If (reader.Read()) Then
                reader.Close()
                adptr.SelectCommand = myCmd
                adptr.Fill(dt)
                lstEmployee.DisplayMember = "employee_name"
                lstEmployee.ValueMember = "employee_id"
                If dt.Rows.Count > 0 Then
                    For i As Integer = 0 To dt.Rows.Count - 1
                        lstEmployee.Items.Add(dt.Rows(i)("employee_name"))
                    Next
                End If
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End With

テキストボックスの情報を表示する方法は次のとおりです

Dim FileSize As UInt32
    Dim mStream As New System.IO.MemoryStream()
    Dim arrImage() As Byte = mStream.GetBuffer()
    FileSize = mStream.Length
    Dim cmd As New MySqlCommandBuilder
    Call Connect()
    With Me
        STRSQL = "select employee_name, profile from Employees where employee_id = " & lstEmployee.SelectedIndex
        Try
            myCmd.Connection = myConn
            myCmd.CommandText = STRSQL
            reader = myCmd.ExecuteReader

            If (reader.Read()) Then
                txtName.Text = reader("employee_name")
                txtProfile.Text = reader("profile")
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            myConn.Close()
        End Try
        adptr.SelectCommand = myCmd
        dt = New DataTable
        adptr = New MySqlDataAdapter("select picture from Employees", myConn)
        cmd = New MySqlCommandBuilder
        adptr.Fill(dt)
        Dim lb() As Byte = dt.Rows(0).Item("picture")
        Dim lstr As New System.IO.MemoryStream(lb)
        pix.Image = Image.FromStream(lstr)
        pix.SizeMode = PictureBoxSizeMode.StretchImage
        lstr.Close()
0
nl ru de
dt.Rows(0).Item( "picture")を確認しましたか? 1人の従業員が Image のみを表示する理由は、
追加された 著者 spajce,
私はすでにそれについて考えましたが、選択した従業員の写真が表示されるようにするにはどうすればいいですか?私のコードを修正してください。ありがとうございます
追加された 著者 VBeginner,

1 答え

where句が1人の従業員を検索してその画像を表示する必要があります。

adptr = _
      New MySqlDataAdapter("select picture from Employees " + _
      "where employee_id = " & lstEmployee.SelectedIndex, myConn)
cmd = New MySqlCommandBuilder
adptr.Fill(dt)
Dim lb() As Byte = dt.Rows(0).Item("picture")
Dim lstr As New System.IO.MemoryStream(lb)
pix.Image = Image.FromStream(lstr)
pix.SizeMode = PictureBoxSizeMode.StretchImage
lstr.Close()

PS: LINQ(Language-Integrated Query)を学習する必要がありますより良いアプローチのために。

1
追加された
私の答えは受け入れ :D としてマークすることを忘れないでください。
追加された 著者 spajce,
@VBeginner:spajceさんの回答が参考になった場合は、upv​​otingや受け入れを検討してください。そうすることで、他のメンバーにあなたを助けて報いることができます。長期的には、あなたの質問は答えを得る可能性が高くなります。
追加された 著者 Neolisk,
おかげで多くのspajce..iは私が気付かなかったことを信じることはできません..ああ、その仕事は今:)
追加された 著者 VBeginner,