Hi alls,

since 2 week i'm stuck to do this thing. Actually i need to display image from oracle database into the picturebox. My oracle database got table name "STAFF_PHOTO" and the column of photo is "PICTURE". The image already converted into ByteArray.

I'm already make a connection and success but the image stil cannot display. already refer to the tutorial but still stuck. I'm also try to use Memorystream but still can't.. anybody can help me plz....:(

8 Years
Discussion Span
Last Post by abcd.xyz

thanks for reply, can u guide me to do it?....where to put the the coding :- Below ButtonClick or where?...thank you...hope u can help me..


I suggest to Copy/Paste the routine as it is i.e. as a separate procedure. Then load an array of bytes from db in button click event and call the routine to test it (i.e. you do get the image in the picture box).

If everything works fine, "extend" those methods to be a part of your main application.


I;m so sorry sir, i'm really dumb....
I'm already try to do with ur suggestgiion but still hang,

Ps answer my stupid question ,eekekeke"

1.The coding that ur given should been paste in "new Module.vb"?
2.Did i have to convert my bytearray image data into filestream first?
3.Can u guide me with little example sir....so help pls....i'm drowning...



Here you go. Create a new form and drop a picturebox control and one button control to it. This is sample code, fix naming if needed, add error handling and add the code for getting data out of Oracle:

Option Strict On
Option Explicit On

Imports System.IO

Public Class Form1

  Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load

  End Sub

  ''' <summary>
  ''' Convert a byte array to an Image
  ''' </summary>
  ''' <param name="NewImage">Image to be returned</param>
  ''' <param name="ByteArr">Contains bytes to be converted</param>
  ''' <remarks></remarks>
  Public Sub Byte2Image(ByRef NewImage As Image, ByVal ByteArr() As Byte)
    Dim ImageStream As MemoryStream

      If ByteArr.GetUpperBound(0) > 0 Then
        ImageStream = New MemoryStream(ByteArr)
        NewImage = Image.FromStream(ImageStream)
        NewImage = Nothing
      End If
    Catch ex As Exception
      NewImage = Nothing
    End Try

  End Sub

  Private Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
    Dim BytesFromDB() As Byte
    Dim TempImage As Image ' Temp image just to help debugging

    TempImage = Nothing
    ReDim BytesFromDB(0) ' "Empty" array
    ' Open connection to Oracle DB
    ' Get the image(bytes) from Oracle DB to BytesFromDB() array

    ' Convert bytes to image
    Byte2Image(TempImage, BytesFromDB)
    ' Check if conversion was ok
    If TempImage IsNot Nothing Then
      PictureBox1.Image = TempImage
      MessageBox.Show("Cannot convert to image", "Error", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
    End If

  End Sub

End Class

Thank you sir, i'm trying but blank "

' Open connection to Oracle DB
        Dim cn As New OracleConnection("Data Source=;User Id=asis;Password=asis;")
        ' Get the image(bytes) from Oracle DB to BytesFromDB() array
        Try 'create command object 
            Dim sb As New System.Text.StringBuilder
            Dim da As OracleDataAdapter
            'Dim cmd As OracleCommand
            sb.Append(" Select * From STAFF_PHOTO where SP_STAFF_ID LIKE '" & TextBox1.Text & "'")
            'sb.Append("select * FROM PICTURE_TABLE WHERE ID LIKE '" & TextBox1.Text & "'")
            'sb.Append(" WHERE ID = " & Me.TextBox1.Text)
            Dim cmd As New OracleCommand(sb.ToString, cn)

            ' cmd()

            Dim rdr As OracleDataReader = cmd.ExecuteReader

            If rdr.Read() Then
                Picturebox1.image = image.......
            End If

what worng sir with my coding?


This code is such a great help, but I just picked up the part that I needed.

Thank you very much!

-Jeff Balbalosa


hello Plz Help me.............
I am gettin error "Parameter is not valid" at dis line ...........

NewImage = Image.FromStream(ImageStream)

how to solve

This question has already been answered. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.