Nah kali ini kita akan mencoba membuat sebuah aplikasi yang dapat memasukan sebuah image atau photo kedalam database. Database yang di pakai adalah database access 2007. Yuk mari ikuti langkah-langkahnya sebagai berikut. Eh lupa… hehehehe… saya memakai bahasa VB.NET dengan Visual Studio 2008.
1. Buka Database Access Lalu Buat Database baru beri nama db_gambar .. dan tambahkan New Table dan beri nama tbl_gambar dan atur fieldnya sebagai berikut :
image

2. Setelah itu lalu buat project baru di Visual Studio  2008 dan beri nama bebas saja deh.. :D lalu database yang telah kita buat tersebut di copy ke folder bin –> debug dalam aplikasi yang telah dibuat baru oleh kita diatas.
3. Buat tampilan sebagai berikut :
image
4. Lalu coding code di bawah ini :

   1: Imports System.Data.OleDb
   2: Imports System.Drawing
   3: Imports System.Drawing.Imaging
   4: Imports System.IO
   5:  
   6: Public Class Form1
   7:     Dim conn As New OleDbConnection
   8:     Dim cmd As OleDbCommand = Nothing
   9:     Dim rd As OleDbDataReader = Nothing
  10:     Sub opens()
  11:         If Not conn Is Nothing Then
  12:             conn.Close()
  13:         End If
  14:         conn.Open()
  15:     End Sub
  16:     Sub closes()
  17:         conn.Close()
  18:     End Sub
  19:     Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  20:         conn.ConnectionString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\db_gambar.accdb"
  21:     End Sub
  22:  
  23:     Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click
  24:         Try
  25:             opens()
  26:             Dim fs As New FileStream(OFD.FileName, FileMode.OpenOrCreate, FileAccess.Read)
  27:             Dim MyData(fs.Length) As Byte
  28:             fs.Read(MyData, 0, CInt(fs.Length))
  29:             fs.Close()
  30:             cmd = New OleDbCommand("INSERT INTO tbl_gambar(nama_gb,gb) VALUES (@nama,@Image)", conn)
  31:             cmd.Parameters.AddWithValue("@nama", txtNama.Text)
  32:             cmd.Parameters.AddWithValue("@Image", MyData)
  33:             If DirectCast(cmd.ExecuteNonQuery(), Integer) > 0 Then
  34:                 MessageBox.Show("Foto berhasil di tambahkan", "Photo Album SQL", MessageBoxButtons.OK, MessageBoxIcon.Information)
  35:                 txtNama.Clear()
  36:                 txtNama.Focus()
  37:                 txtFileName.Clear()
  38:                 PicGambar.Image = Nothing
  39:             End If
  40:             closes()
  41:         Catch ex As Exception
  42:             MessageBox.Show(ex.Message)
  43:         End Try
  44:     End Sub
  45:  
  46:     Private Sub btnTelusuri_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnTelusuri.Click
  47:         Try
  48:             OFD.Filter = "Image Files (*.jpg, *.bmp, *.gif, *.png)|*.jpg; *.bmp; *.gif; *.png"
  49:             OFD.ShowDialog()
  50:             txtFileName.Text = OFD.FileName
  51:             txtFileName.SelectionStart = txtFileName.Text.Length
  52:             If Trim(txtFileName.Text) <> "" Then
  53:                 PicGambar.Image = Image.FromFile(txtFileName.Text)
  54:             End If
  55:         Catch ex As Exception
  56:             MessageBox.Show(ex.Message)
  57:         End Try
  58:     End Sub
  59:  
  60:     Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBatal.Click
  61:         Me.Close()
  62:     End Sub
  63:  
  64:     Private Sub txtNama_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles txtNama.Validating
  65:         If txtNama.Text.Length = 0 Then
  66:             ErrorProvider1.SetError(txtNama, "Nama Harus Diisi")
  67:         End If
  68:     End Sub
  69: End Class

5. Nah sudah jadi tuh.. ternyata mudah yah ?? :D :D

Sedikit penjelasan,, perhatikan potongan kode ini :

   1: Dim fs As New FileStream(OFD.FileName, FileMode.OpenOrCreate, FileAccess.Read)
   2: Dim MyData(fs.Length) As Byte
   3: fs.Read(MyData, 0, CInt(fs.Length))


Nah kode tersebut adalah mengubah image yang kita browse tadi kedalam variabel bertipe byte. Sebenarnya pada prinsipnya insert data kedalam database itu sama saja kita menggunakan OledbCommand dan Method Execute Non Query namun jika image yang kita input maka image ini harus di konversi dulu ke byte.. Mungkin begitu maksudnya ?? hehehe :D CMIIW

Untuk lebih jelasnya silahkan download souce codenya disini 

Salam SEMOGA BERMANFAAT :D

2 Komentar

  1. Anonymous // Monday, November 21, 2011 at 4:48:00 PM GMT+7  

    klau musik n video gmn cranya? kra2 bisa ga ya dimasukkan kdtabase? thx....

  2. Calon Petaniii... // Tuesday, June 5, 2012 at 2:38:00 PM GMT+7  

    Mengapa OFD di komputer saya gak dikenal, mohon petujuknya