Hello Arvind,
You can use the given code to show images from a MSAccess Database table into Windows Picture Box. To
implement the given code, drop a picture box and two buttons on a Windows form. Two buttons have been used to
move back and forward to display the images from the table
BEGIN CODE
CODE
Imports System.Data.OleDb
Imports System.IO
Public Class Form1
Dim conn As New OleDbConnection
Dim DA As OleDbDataAdapter
Dim DS As New DataSet
Dim counter As Integer
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\DataBases\Nwind.mdb;User Id=admin;Password=;"
DA = New OleDbDataAdapter("Select Photo from Employees", conn)
DA.Fill(DS)
counter = 0
Me.PictureBox1.SizeMode = PictureBoxSizeMode.StretchImage
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
PictureBox1.Image = GetImageFromByteArray(DS.Tables(0).Rows.Item(counter).Item(0))
If counter < Me.DS.Tables(0).Rows.Count - 1 Then
counter += 1
End If
End Sub
Private Function GetImageFromByteArray(ByVal picData As Byte()) As Image
If picData Is Nothing Then
Return Nothing
End If
' is this is an embedded object?
Dim bmData As Integer = IIf((picData(0) = 21 AndAlso picData(1) = 28), 78, 0)
' load the picture
Dim img As Image = Nothing
Try
Dim ms As New MemoryStream(picData, bmData, picData.Length - bmData)
img = Image.FromStream(ms)
Catch
End Try
' return what we got
Return img
End Function
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
PictureBox1.Image = GetImageFromByteArray(DS.Tables(0).Rows.Item(counter).Item(0))
If counter > 0 Then
counter -= 1
End If
End Sub
End Class
END CODE
MSAccess will return the images in the form of byte arrays. We need to convert these bytes into Image format.
GetImageFromByteArray() does the same in the above code. It takes the arrray of bytes and convert them into
images which can then easily set into a Picture box.
I hope this will help.
Regards,
Allen