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 :
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 :
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
klau musik n video gmn cranya? kra2 bisa ga ya dimasukkan kdtabase? thx....
Mengapa OFD di komputer saya gak dikenal, mohon petujuknya