How to add image from database to PictureBox?

I use this to get bytes of images from a database

cmd.CommandText = "select imagedate from projectimages where imagename = '" + _
    ListBox1.Text + "' and CSVprojectref=checksum('" + textboxFileRef.Text + "')"

Dim img As Object = cmd.ExecuteScalar()

Now, how can I add this to PictureBox.image. I have a lot of problems with extracting an image and displaying it in a PictureBox.

The data type is the image in the sql database, and I use this code to save the image in db

         Dim ms As New IO.MemoryStream

        If imageFilename.Contains("jpeg") Or imageFilename.Contains("jpg") Then
            imageUpload.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)

        End If
        If imageFilename.Contains("png") Then
            imageUpload.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
        End If
        If imageFilename.Contains("gif") Then
            imageUpload.Save(ms, System.Drawing.Imaging.ImageFormat.Gif)
        End If
        If imageFilename.Contains("bmp") Then
            imageUpload.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp)
        End If

        Dim bytes() As Byte = ms.ToArray
        Dim img As String = Convert.ToBase64String(bytes)


        Dim cmd As New OleDb.OleDbCommand("insert projectimages values('" + imageNameTemp + "','" + img + "',CHECKSUM('" + textboxFileRef.Text + "'))", con)
        cmd.ExecuteNonQuery()
+3
source share
4 answers

After 5-6 hours of searching forums and blogs and all that I like ... to save the image in the database

1- data type must be an image in the database

Now add this code when saving the image to sql database

    OpenFileDialog1.ShowDialog()
    imageFilename = OpenFileDialog1.FileName
    Dim imageUpload As Image
    imageUpload = Image.FromFile(OpenFileDialog1.FileName)



    If imageFilename <> "" Then

        Dim imageNameTemp As String

        imageNameTemp = imageFilename

        While (imageNameTemp.Contains("\"))


            imageNameTemp = imageNameTemp.Remove(0, imageNameTemp.IndexOf("\") + 1)
        End While

        Dim ms As New IO.MemoryStream

        If imageFilename.Contains("jpeg") Or imageFilename.Contains("jpg") Then
            imageUpload.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)

        End If
        If imageFilename.Contains("png") Then
            imageUpload.Save(ms, System.Drawing.Imaging.ImageFormat.Png)
        End If
        If imageFilename.Contains("gif") Then
            imageUpload.Save(ms, System.Drawing.Imaging.ImageFormat.Gif)
        End If
        If imageFilename.Contains("bmp") Then
            imageUpload.Save(ms, System.Drawing.Imaging.ImageFormat.Bmp)
        End If

        'Dim cmd As New SqlCommand("INSERT INTO projectimages (imagename,imagedate,csvprojectref) VALUES ('" + imageFilename + "',@BLOBData,CHECKSUM('" + textboxFileRef.Text + "'))", con)

        Dim b() As Byte = ms.ToArray()

        Dim cmd As New SqlCommand("INSERT INTO projectimages (imagename,imagedate,csvprojectref) VALUES ('" + imageNameTemp + "',@BLOBData,CHECKSUM('" + textboxFileRef.Text + "'))", con)

        cmd.Parameters.Add("@BLOBData", SqlDbType.Image, b.Length).Value = b
        '    Dim cmd As New SqlCommand("insert projectimages(imagename,imagedate,csvprojectref) values('imagma','" + img + "',CHECKSUM('" + textboxFileRef.Text + "'))", con)

        cmd.ExecuteNonQuery()

        '  cmdTemp.Parameters.Add("@photo", SqlDbType.Image, b.Length).Value = b

    End If

And when to retrieve the data to insert into the image field, use this code ...

  cmd.CommandText = "select imagedate from projectimages where imagename = '" +      ListBox1.Text + "' and CSVprojectref=checksum('" + textboxFileRef.Text + "')"


        cmd.Connection = con
        Dim da As New SqlDataAdapter(cmd)
        Dim ds As New DataSet()
        da.Fill(ds, "projectimages")
        Dim c As Integer = ds.Tables(0).Rows.Count
        If c > 0 Then
            Dim bytBLOBData() As Byte = _
                ds.Tables(0).Rows(c - 1)("imagedate")
            Dim stmBLOBData As New MemoryStream(bytBLOBData)
            PictureBox1.Image = Image.FromStream(stmBLOBData)
        End If
+3
source

MemoryStream Microsoft.

0
Dim img As Byte() = DirectCast(cmd.ExecuteScalar(), Byte())
Dim ms as MemoryStream = New MemoryStream(img)
pictureBox.Image = Image.FromStream(ms)

Assuming imagedate a blob.

0
source

here is my code to show blob file in picturebox in vb.net. hope this helps

Dim connstring As String = "Database=pmk;data source=localhost;user id=root;password="
Dim Sql As String = "select * from mastermahasiswa where Nim='" & TextBox1.Text & "'"
Dim conn As New MySqlConnection(connstring)
Dim cmd As New MySqlCommand(Sql, conn)
Dim dr As MySqlDataReader = Nothing
conn.Open()
dr = cmd.ExecuteReader()
dr.Read()
Dim imagebytes As Byte() = CType(dr("Foto"), Byte())
Using ms As New IO.MemoryStream(imagebytes)
    PictureBox1.Image = Image.FromStream(ms)
    PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
End Using
conn.Close()
0
source

All Articles