ImageDb

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