Insert, Update, Delete dan Select Gambar di VB.Net 2008 dengan Database Sql Server 2005

By Jastis Bago

Pendahuluan
Sebenarnya  sudah  banyak  tutorial  mengenai  cara  menyimpan,menupdate  dan menampilkan  gambar ke/dari dalam database Sql Server tapi kebanyakan tutorial ini hanya membahas 1 by 1. Sehingga akan sangat menyulitkan bagi seorang programmer baru  yang ingin belajar  semuanya.  Karena  setiap tutor  pasti  mempunyai  cara  yang berbeda  dan  ini  menyebabkan  setiap  codingnya  juga  pasti  berbeda  (terkecuali  dari sumber yang sama) tapi sangat jarang saya temukan. Pada contoh ini saya membuat  data mahasiswa dimana setiap data mahasiswa dapat memasukkan, mengupdate, menghapus dan menampilkan pada aplikasi yang dibuat. Jika user tidak memilih file (gambar) pada OpenFileDialog maka secara otomatis foto Mahasiswa  menjadi  default  (student_icon.png)  dan jika  mau di  ganti  fotonya maka tinggal menjalankan perintah Update.Step by Step :
1. Rancang terlebih dahulu design programnya seperti berikut :
– Buat satu form
– 2 GroupBox
– 1 PictureBox = Picturesiswa
–   9  Button  (Button1  =  Buttonbaru,  Button2  =  Buttonsimpan,  Button3  =
Buttonhapus,  Button4  =  Buttonupdate,  Button5  =  Buttonedit,  Button6  =
Buttonbatal,  Button7  =  Buttonpic  (  Pilih  Foto),  Button8  =  tampil  (  Untuk
mencari NIM dan menampilkannya ),dan Button9 = Buttonkeluar).
–  9 TextBox (  Textnim,  Textnama,  Texttempat,  Texttgl,  Textjur,  Textjenjang,
Textalamat, Textkota dan Textcari).
– 1 ComboBox = Textkelamin
– beberapa Label yang diperlukan seperti Labelid dengan propertis Visible=false

1

2. Setelah  merancang  design,  buatlah  database  dan  tabel  seperti  berikut  (  di
program ini databasenya : tutorial dan tabel : tbl_mahasiswa) :

2

3. Buat Modul Koneksi dengan nama Module1 (terserah), berikut coding koneksi
saya :

Imports System.Data
Imports System.Data.SqlClient
Imports System.Security.SecurityException
Module Module1
    Public Function koneksi() As SqlConnection
        Dim supernothing As New SqlConnection
        supernothing = New SqlConnection(“server=YCL-1;  database=tutorial; trusted_Connection=true”) ‘/ Koneksi di
komputer saya ‘/
        supernothing.Open()
        Return (supernothing)
    End Function
End Module

Sekarang untuk coding secara keseluruhan :

Imports System.Data
Imports System.Data.SqlClient
Public Class mahasiswa
    Dim a As New OpenFileDialog
      
    Private Sub mahasiswa_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Call normal()
    End Sub
    Sub normal()
        Textnama.Enabled = False
        Textnim.Enabled = False
        Texttempat.Enabled = False
        Texttgl.Enabled = False
        Textkelamin.Enabled = False
        Textjur.Enabled = False
        Textjenjang.Enabled = False
        Textalamat.Enabled = False
        Textkota.Enabled = False
        Picturesiswa.Enabled = False
        Buttonpic.Enabled = False
        Buttonbaru.Enabled = True
        Buttonsimpan.Enabled = False
        Buttonupdate.Enabled = False
        Buttonedit.Enabled = False
        Buttonbatal.Enabled = False
        Buttonhapus.Enabled = False
        Buttonbaru.Focus()
    End Sub
    Sub baru()
        Textnama.Enabled = True
        Textnim.Enabled = True
        Texttempat.Enabled = True
        Texttgl.Enabled = True
        Textkelamin.Enabled = True
        Textjur.Enabled = True
        Textjenjang.Enabled = True
        Textalamat.Enabled = True
        Textkota.Enabled = True
        Picturesiswa.Enabled = True
        Buttonpic.Enabled = True
    End Sub
    Sub clear()
        Textnama.Text = “”
        Textnim.Text = “”
        Texttempat.Text = “”
        Texttgl.Text = “”
        Textkelamin.Text = “”
        Textjur.Text = “”
        Textjenjang.Text = “”
        Textalamat.Text = “”
        Textkota.Text = “”
        Picturesiswa.Image = Nothing
    End Sub
End Class

Koding Untuk Buttonbaru_Click

 Private Sub Buttonbaru_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttonbaru.Click
        Call baru()
        Buttonbaru.Enabled = False
        Buttonsimpan.Enabled = True
        Buttonbatal.Enabled = True
        Textnim.Focus()
        Textkelamin.SelectedIndex = 0
    End Sub
  Private Sub Buttonedit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttonedit.Click
        Call baru()
        Buttonupdate.Enabled = True
        Buttonhapus.Enabled = False
        Buttonbaru.Enabled = False
        Buttonedit.Enabled = False
        Textcari.Text = “”
    End Sub
    Private Sub Buttonbatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Buttonbatal.Click
        Call normal()
        Call clear()
        Textcari.Text = “”
    End Sub

Private  Sub  Buttonsimpan_Click(ByVal  sender  As  System.Object,  ByVal  e  As  System.EventArgs)
Handles Buttonsimpan.Click
        Try
            If Textnim.Text <> “” Then
                Using  sql  As  New  SqlClient.SqlCommand(“Insert  Into
tbl_mahasiswa(nim,nama,tempat,lahir,kelamin,jenjang,jurusan,gambar,alamat,kota)  Values
(@nim,@nama,@tempat,@lahir,@kelamin,@jenjang,@jurusan,  @gambar,  @alamat,@kota)”,
Module1.koneksi)
                    sql.Parameters.Add(New SqlClient.SqlParameter(“@nim”, SqlDbType.VarChar)).Value =
Textnim.Text
                    sql.Parameters.Add(New SqlClient.SqlParameter(“@nama”, SqlDbType.VarChar)).Value =
Textnama.Text
                    sql.Parameters.Add(New SqlClient.SqlParameter(“@tempat”, SqlDbType.VarChar)).Value =
Texttempat.Text
                    sql.Parameters.Add(New SqlClient.SqlParameter(“@lahir”, SqlDbType.VarChar)).Value =
Texttgl.Text
                    sql.Parameters.Add(New SqlClient.SqlParameter(“@kelamin”, SqlDbType.VarChar)).Value
= Textkelamin.Text
                    sql.Parameters.Add(New SqlClient.SqlParameter(“@jenjang”, SqlDbType.VarChar)).Value =
Textjenjang.Text
                    sql.Parameters.Add(New SqlClient.SqlParameter(“@jurusan”, SqlDbType.VarChar)).Value =
Textjur.Text
‘************************************************************************************
                    If a.FileName = Nothing Then
                        sql.Parameters.Add(New SqlClient.SqlParameter(“@gambar”, SqlDbType.Image)).Value
= IO.File.ReadAllBytes(“student_icon.png”)
                    Else
                        sql.Parameters.Add(New SqlClient.SqlParameter(“@gambar”, SqlDbType.Image)).Value
= IO.File.ReadAllBytes(a.FileName)
                    End If
‘/ Sebelum perintah simpan di eksekusi, maka saya membuat satu kondisi dimana Jika File Name (foto)
tidak ada, maka foto defaultnya adalah student_icon.png, ini berfungsi untuk mencegah jika Picturesiswa
kosong.
                    sql.Parameters.Add(New SqlClient.SqlParameter(“@alamat”, SqlDbType.VarChar)).Value =
Textalamat.Text
                    sql.Parameters.Add(New SqlClient.SqlParameter(“@kota”, SqlDbType.VarChar)).Value =
Textkota.Text
                    sql.ExecuteNonQuery()
                    MessageBox.Show(“Nama Mahasiswa : ” & Textnama.Text & ” Telah disimpan”, “Data
Sukses”, MessageBoxButtons.OK, MessageBoxIcon.Information)
                    Module1.koneksi.Close()
                    Call clear()
                    Call normal()
                    Buttonbaru.Focus()
                End Using
            Else
                MessageBox.Show(“Ada Kesalahan !”,  “Gagal  Menyimpan”,  MessageBoxButtons.OK,
MessageBoxIcon.Error)
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Private Sub Buttonhapus_Click(ByVal  sender  As  System.Object,  ByVal  e As  System.EventArgs)
Handles Buttonhapus.Click
        Dim Hapus As Integer
        Hapus = MsgBox(“Apa anda yakin akan menghapus ?” & vbCrLf & “Nama Mahasiswa = ” &
Textnama.Text, vbYesNo, “Konfimasi Hapus”)
        If (Hapus = vbYes) Then

Using sql  As  New SqlClient.SqlCommand(“delete  from tbl_mahasiswa  where  id='”  &
Labelid.Text & “‘”, Module1.koneksi)
                Using dr As SqlClient.SqlDataReader = sql.ExecuteReader()
                End Using
            End Using
            MessageBox.Show(“Nama Mahasiswa : ” & Textnama.Text & ” Sudah dihapus dari record !”,
“Data Sukses”, MessageBoxButtons.OK, MessageBoxIcon.Information)
            Module1.koneksi.Close()
            Call clear()
            Call normal()
            Buttonbaru.Focus()
        End If
    End Sub
    Private Sub Buttonupdate_Click(ByVal  sender  As  System.Object,  ByVal  e As  System.EventArgs)
Handles Buttonupdate.Click
        Try
            Dim cmd As String = String.Empty
            Dim adapter As New SqlDataAdapter(“select  gambar from tbl_mahasiswa where nim='” &
Textnim.Text & “‘”, Module1.koneksi)
            Dim dt As New DataTable(“tbl_mahasiswa”)
            adapter.Fill(dt)
            Using  sql  As  New  SqlClient.SqlCommand(“update  tbl_mahasiswa  set
nim=@nim,nama=@nama,tempat=@tempat,lahir=@lahir,kelamin=@kelamin,jenjang=@jenjang,jurusan
=@jurusan,gambar=@gambar,alamat=@alamat,kota=@kota  where  id='”  +  Labelid.Text  +  “‘”,
Module1.koneksi)
                sql.Parameters.Add(“@nim”, SqlDbType.VarChar).Value = Textnim.Text
                sql.Parameters.Add(“@nama”, SqlDbType.VarChar).Value = Textnama.Text
                sql.Parameters.Add(“@tempat”, SqlDbType.VarChar).Value = Texttempat.Text
                sql.Parameters.Add(“@lahir”, SqlDbType.VarChar).Value = Texttgl.Text
                sql.Parameters.Add(“@kelamin”, SqlDbType.VarChar).Value = Textkelamin.Text
                sql.Parameters.Add(“@jenjang”, SqlDbType.VarChar).Value = Textjenjang.Text
                sql.Parameters.Add(“@jurusan”, SqlDbType.VarChar).Value = Textjur.Text
                If a.FileName = Nothing Then
                    Dim row As DataRow = dt.Rows(0)
                    Using ms As New IO.MemoryStream(CType(row(0), Byte()))
                        Dim img As Image = Image.FromStream(ms)
                        Picturesiswa.Image = img
                        sql.Parameters.Add(New SqlClient.SqlParameter(“@gambar”, SqlDbType.Image)).Value
= (CType(row(0), Byte()))
                    End Using
                Else
                    sql.Parameters.Add(New SqlClient.SqlParameter(“@gambar”, SqlDbType.Image)).Value =
IO.File.ReadAllBytes(a.FileName)
                End If
‘/  Sebelum perintah uopdate di eksekusi, maka kondisi diatas akan memeriksa apakah foto sebelumnya
tidak diganti (dari database) sehingga foto yang lama akan tetap disimpan kedalam database, tetapi jika
foto diganti maka perintah yang dijalankan adalah Else.
                sql.Parameters.Add(“@alamat”, SqlDbType.VarChar).Value = Textalamat.Text
                sql.Parameters.Add(“@kota”, SqlDbType.VarChar).Value = Textkota.Text
                sql.ExecuteNonQuery()
                MessageBox.Show(“Nama Mahasiswa : ” & Textnama.Text & ” Sudah di Update !”, “Data
Sukses”, MessageBoxButtons.OK, MessageBoxIcon.Information)
                Module1.koneksi.Close()
                Call clear()
                Call normal()
                Buttonbaru.Focus()
            End Using
        Catch ex As Exception
            MsgBox(ex.Message)

End Try
    End Sub
 Private Sub Buttonbatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Buttonbatal.Click
        Call normal()
        Call clear()
        Textcari.Text = “”
    End Sub
‘/ Buttonpic_Click akan membuka file dialog
    Private Sub Buttonpic_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles
Buttonpic.Click
        Dim pictureLocation As String
        a.Filter  = “JPG Files (*.jpg)|*.jpg|JPEG Files  (*.jpeg)|*.jpeg|GIF Files (*.gif)|*.gif|PNG Files
(*.png)|*.png|BMP Files (*.bmp)|*.bmp|TIFF Files (*.tiff)|*.tiff”
        pictureLocation = a.FileName
        Try
            If a.ShowDialog = Windows.Forms.DialogResult.OK Then
                Picturesiswa.Image = New Bitmap(a.FileName)
                Picturesiswa.SizeMode = PictureBoxSizeMode.StretchImage
            End If
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
‘/ Perintah untuk menampilkan isi tabel dengan keyword NIM di input ke Textcari
Private  Sub  tampil_Click(ByVal  sender  As  System.Object,  ByVal  e  As  System.EventArgs)  Handles
tampil.Click
        Try
            Using sql  As New SqlClient.SqlCommand(“Select  * from tbl_mahasiswa where nim='” &
Textcari.Text & “‘”, Module1.koneksi)
                Using dr As SqlClient.SqlDataReader = sql.ExecuteReader()
                    Using dt As New DataTable
                        dt.Load(dr)
                        If Textcari.Text = “” Then
                            MessageBox.Show(“Keyword Masih Kosong !”, “Coba Lagi”, MessageBoxButtons.OK,
MessageBoxIcon.Error)
                            Textcari.Focus()
                        ElseIf dt.Rows.Count <> 1 Then
                            MessageBox.Show(“NIM : ” & Textcari.Text & ” Belum ada di record !”, “Coba Lagi”,
MessageBoxButtons.OK, MessageBoxIcon.Error)
                            Textcari.Text = “”
                            Textcari.Focus()
                        Else
                            Dim row As DataRow = dt.Rows(0)
                            Labelid.Text = row(0)
                            Textnim.Text = row(1)
                            Textnama.Text = row(2)
                            Texttempat.Text = row(3)
                            Texttgl.Text = row(4)
                            Textkelamin.Text = row(5)
                            Textjenjang.Text = row(6)
                            Textjur.Text = row(7)
                            Using ms As New IO.MemoryStream(CType(row(8), Byte()))
                                Dim img As Image = Image.FromStream(ms)
                                Picturesiswa.Image = img
                                Picturesiswa.SizeMode = PictureBoxSizeMode.StretchImage

End Using
                            Textalamat.Text = row(9)
                            Textkota.Text = row(10)
                        End If
                    End Using
                End Using
            End Using
            Module1.koneksi.Close()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        Buttonedit.Enabled = True
        Buttonhapus.Enabled = True
        Buttonbatal.Enabled = True
        Buttonbaru.Enabled = False
    End Sub
    Private Sub Buttonkeluar_Click(ByVal  sender  As System.Object,  ByVal  e As System.EventArgs)
Handles Buttonkeluar.Click
        Me.Close()
    End Sub
Dan jika semua coding itu benar maka hasilnya seperti berikut :

3 4

Penutup
Tutorial ini masih sangat jauh dari kesempurnaan, mungkin saja masih ada coding yang salah tapi  setidaknya teman-teman dapat  melakukan exploitasi  dengan menggunakan imajinasi yang ada untuk membuat coding ini menjadi lebih sempurna.

0Nama Jastis Bago. Lahir Di Nias 27 Juli 1988.
Menjadi Administrator Forum Nias Community dengan alamat
http://niascommunity.web.id
Saat ini sedang menyelesaikan pendidikan S1 jurusan Sistem Informasi
di STMIK Potensi Utama – Medan.
I’m Supernothing
Aku bukan siapa-siapa seperti yang anda kenal. Aku hanya belajar dari
apa yang saya tidak tahu agar saya menjadi tahu.
“Learn what i do not know, sharing i knowledge and doing what i think
is right.”
Read More About Me……http://jastisbago.wordpress.com/

Sumber : ilmukomputer.com

Tinggalkan Balasan

Isikan data di bawah atau klik salah satu ikon untuk log in:

Logo WordPress.com

You are commenting using your WordPress.com account. Logout /  Ubah )

Foto Google

You are commenting using your Google account. Logout /  Ubah )

Gambar Twitter

You are commenting using your Twitter account. Logout /  Ubah )

Foto Facebook

You are commenting using your Facebook account. Logout /  Ubah )

Connecting to %s