none
Bild in picturebox aus SQL Datenbank laden RRS feed

  • Frage

  • Hallo Leute,

    kann mir bitte jemand einen tip geben wie ich ein Bild aus einer SQL Datenbank in eine picturebox laden kann.

    Ziel:

    aus einer MA-Tabelle soll durch den Benutzernamen (welche gerade angemeldet ist ) sein Bild in die picturebox der Haupt Form geladen werden.

    Vielen Dank

    Dienstag, 31. Oktober 2017 22:35

Antworten

  • Hi,
    lese einfach das Bild in einem ByteStream aus, erzeuge ein Bitmap und weise diese BitMap der PictureBox Steuerelement zu. Wichtig dabei ist nur, dass das Bild auch als ByteStream in die Datenbank geschrieben wurde. Hier mal ein Codeschnipsel:

    ' und das Image-Feld wieder auslesen und direkt in einer PictureBox anzeigen
      Sub PasteSQLDbIntoPictureBox(ByVal pb As PictureBox, ByVal id As Integer)
        pb.SizeMode = PictureBoxSizeMode.StretchImage
        Dim strSQL As String = "SELECT Pict FROM Pict WHERE ID = @ID"
        Dim myCommand As New SqlCommand(strSQL, mySQLConnection)
        myCommand.Parameters.Add(New SqlParameter("@ID", SqlDbType.Int)).Value = id
        mySQLConnection.Open()
        Dim myReader As SqlDataReader
        myReader = myCommand.ExecuteReader
        If myReader.Read() Then
          Dim myArrayBuffer(1000000) As Byte
          myReader.GetBytes(0, 0, myArrayBuffer, 0, 1000000)
          Dim myMemoryStream As New System.IO.MemoryStream(myArrayBuffer)
          pb.Image = New Bitmap(myMemoryStream)
        End If
        mySQLConnection.Close()
      End Sub


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP)
    Meine Homepage mit Tipps und Tricks

    Mittwoch, 1. November 2017 05:51
  • Hi,

    hab den Fehler gefunden, der Mix war es,...

    Vielen Dank nochmals.

    Viele Grüsse

    Darko

    Freitag, 3. November 2017 19:44

Alle Antworten

  • Hi,
    lese einfach das Bild in einem ByteStream aus, erzeuge ein Bitmap und weise diese BitMap der PictureBox Steuerelement zu. Wichtig dabei ist nur, dass das Bild auch als ByteStream in die Datenbank geschrieben wurde. Hier mal ein Codeschnipsel:

    ' und das Image-Feld wieder auslesen und direkt in einer PictureBox anzeigen
      Sub PasteSQLDbIntoPictureBox(ByVal pb As PictureBox, ByVal id As Integer)
        pb.SizeMode = PictureBoxSizeMode.StretchImage
        Dim strSQL As String = "SELECT Pict FROM Pict WHERE ID = @ID"
        Dim myCommand As New SqlCommand(strSQL, mySQLConnection)
        myCommand.Parameters.Add(New SqlParameter("@ID", SqlDbType.Int)).Value = id
        mySQLConnection.Open()
        Dim myReader As SqlDataReader
        myReader = myCommand.ExecuteReader
        If myReader.Read() Then
          Dim myArrayBuffer(1000000) As Byte
          myReader.GetBytes(0, 0, myArrayBuffer, 0, 1000000)
          Dim myMemoryStream As New System.IO.MemoryStream(myArrayBuffer)
          pb.Image = New Bitmap(myMemoryStream)
        End If
        mySQLConnection.Close()
      End Sub


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP)
    Meine Homepage mit Tipps und Tricks

    Mittwoch, 1. November 2017 05:51
  • Hallo Peter,

    vielen Dank für die rasche Antwort, habe den Code versucht bekomme allerdings eine Fehlermeldung.

    

    Mittwoch, 1. November 2017 22:02
  • Hi,
    der Codeschnipsel war für den SQL Server, da ich davon ausgegangen bin, dass Du mit SQL Datenbank eine Datenbank im SQL Server meinst.

    Der Fehler wird angezeigt, weil Du SQL Server und MySQL gemixt hast. Das geht nicht. Wenn Du MySQL nutzt, musst Du Connection und Command aus dem MySql-Namensraum nutzen.


    --
    Viele Grüsse
    Peter Fleischer (ehem. MVP)
    Meine Homepage mit Tipps und Tricks

    Donnerstag, 2. November 2017 05:08
  • Hi,

    hab den Fehler gefunden, der Mix war es,...

    Vielen Dank nochmals.

    Viele Grüsse

    Darko

    Freitag, 3. November 2017 19:44