Storing and retrieving Images from Access database using VB.Net
Introduction
This is a simple code snippet which is used to store and retrieve images from Access database using VB.net.
Code
1: Private Sub ShowDetails()
2: Try
3: Dim cn As New OleDb.OleDbConnection
4: Dim cmd As OleDb.OleDbCommand
5: Dim dr As OleDb.OleDbDataReader
6: cn.ConnectionString = mstrConnection
7: cn.Open()
8: cmd = cn.CreateCommand()
9: cmd.CommandText = _
10: "SELECT I_Image FROM tblImage WHERE I_Name = '" & _
11: cbI_Name.Text & "'"
12: dr = cmd.ExecuteReader
13: If dr.Read Then
14: Dim bytImage() As Byte
15: Try
16: bytImage = CType(dr(0), Byte())
17: Dim ms As New System.IO.MemoryStream(bytImage)
18: Dim bmImage As New Bitmap(ms)
19: ms.Close()
20: pbI_Image.Image = bmImage
21: pbI_Image.Refresh()
22: Catch ex As Exception
23: MsgBox(ex.ToString)
24: End Try
25: End If
26: dr.Close()
27: cn.Close()
28: cmd.Dispose()
29: cn.Dispose()
30: Catch ex As Exception
31: MsgBox(ex.ToString)
32: End Try
33: End Sub
34: Private Sub SaveData()
35: Try
36: Dim cn As New OleDb.OleDbConnection
37: Dim cmd As OleDb.OleDbCommand
38: cn.ConnectionString = mstrConnection
39: cn.Open()
40: cmd = cn.CreateCommand()
41: If mstrFlag = "N" Then
42: cmd.CommandText = _
43: "INSERT INTO tblImage VALUES (@I_Name, @I_Image)"
44: ElseIf mstrFlag = "M" Then
45: cmd.CommandText = _
46: "UPDATE tblImage SET I_Name = @I_Name, I_Image = " & _
47: "@I_Image WHERE I_Name = '" & cbI_Name.Tag.ToString & "'"
48: End If
49: Dim bytImage() As Byte
50: Try
51: Dim ms As New System.IO.MemoryStream
52: Dim bmpImage As New Bitmap(pbI_Image.Image)
53: bmpImage.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg)
54: bytImage = ms.ToArray()
55: ms.Close()
56: Catch ex As Exception
57: MsgBox(ex.ToString)
58: End Try
59: cmd.Parameters.Add(New OleDb.OleDbParameter("@I_Name", _
60: OleDb.OleDbType.VarChar, 120))
61: cmd.Parameters.Add(New OleDb.OleDbParameter("@I_Image", _
62: OleDb.OleDbType.Binary))
63: cmd.Parameters("@I_Name").Value = cbI_Name.Text
64: cmd.Parameters("@I_Image").Value = bytImage
65: If cmd.ExecuteNonQuery() > 0 Then
66: MsgBox("Record has been " & _
67: IIf(mstrFlag = "N", "added", "modified").ToString & _
68: " successfully.", MsgBoxStyle.Information)
69: End If
70: cmd.Dispose()
71: cn.Dispose()
72: Catch ex As Exception
73: MsgBox(ex.ToString)
74: End Try
75: FillData()
76: End Sub