Berbagi Cerita, Catatan, Pengalaman ngoding dan Secangkir Teh Hangat.

Thursday, December 29, 2016

CRUD : Mencari Dan Merubah data dengan Perintah SQL Select,Update di VB.Net

Mencari Dan Merubah data dengan Perintah SQL Select,Update di VB.Net.

Ketika kita bekerja dengan database, kita tidak bisa lepas dari CRUD (Create, Read, Update, Delete).

Pada post kali ini saya akan mencatat bagaimana cara Mencari dan Merubah data dengan perintah SQL Select dan Update. biar engga lupa jangan lupa bookmark CRTL + D.

Mencari dengan perintah SQL Select 

untuk mencari data dengan perintah select kita juga perlu menambahkan filter supaya pencarian data lebih akurat dan tepat sasaran.

di asumsikan kita memiliki struktur table seperti ini.


Dengan desain form seperti ini.


skenarionya adalah, ketika kita memasukan nik di kolom nik dan menekan enter, program akan terhubung ke database yang sudah dibuat dan akan melakukan pencarian data. jika nik yang dimasukan sudah ada maka akan memunculkan detail data dari nik tersebut.

Import name space


Imports System.Data.OleDb


Set Connection String


Dim connection_string As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" & Application.StartupPath & "\database.accdb;Persist Security Info=False;"


Buat variable untuk menampung informasi apakah nik yang di inputkan baru atau data lama.


   Dim new_entry As Integer = 0

Function Pencarian data dan pengisian data kedalam objek yang sudah disiapkan.

buat function dengan nama "cari_data_berdasarkan_nik"

 Private Sub cari_data_berdasarkan_nik()
        'variable script_sql_insert menyimpan perintah insert @nik,@nama,@jk,@tgllahir adalah variable atau paramete
        Dim script_sql_insert = "select * from karyawan where nik = @nik"
        'usahakan gunakan using supaya objek yang kita buat akan otomatis tertutup kalo udah selesai.
        'ikon sebagai using statement koneksi ke database.
        Using iKon = New OleDbConnection(connection_string)
            'ini pengecekan aja siapa tau ada tuyul yang engga sengaja nyalain koneksi.
            If iKon.State = ConnectionState.Open Then iKon.Close()
            iKon.Open()
            'kasih jebakan petruk buat nangkep error
            Try
                'lagi, gunakan using
                'icmd sebagai statement untuk menjalankan perintah sql menggunakan koneksi ikon
                Using icmd = New OleDbCommand(script_sql_insert, iKon)
                    'dengan menggunakan parameter tidak usah khawatir dengan nama yang menggandung ' (apostrop) karena otomatis dianggap sebagai string biasa
                    'dengan parameter kekhawatiran sql injection banyak berkurang.
                    icmd.Parameters.Add(New OleDbParameter("@nik", tnik.Text))
                    'setelah parameter dibuat execute icmd
                    'karena kita melakukan d=pencarian data kita gunakan data reader.
                    Using reader As OleDbDataReader = icmd.ExecuteReader
                        'jika data reader menemukan data yang dicari atau datareader mengandung baris yang artinya ada data yang ditemukan
                        If reader.HasRows = True Then
                            'lakukan pembacaaan ke datareader
                            While reader.Read
                                tnama.Text = reader("nama")
                                cmbjk.Text = reader("jenis_kelamin")
                                dttgl_lahir.Value = reader("tanggal_lahir")
                            End While
                            new_entry  = 0 
                         Else
                            new_entry = 1
                            MsgBox("NIK belum terdaftar")                             
                        End If
                    End Using
                End Using
            Catch ex As Exception
                'jika terjadi error ketika menjalankan icmd, akan ditanggkap disini dan dikasih pesan error
                'jika errornya ada di koneksi tidak akan ditangkap disini karena try ini ada didalam koneksi.
                MsgBox("error simpan data" & vbNewLine & ex.Message)
            End Try
        End Using
    End Sub



panggil function "cari_data_berdasarkan_nik" ketika terjadi event keydown di tnik.


Private Sub tnik_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tnik.KeyDown
        'ketika tombol enter ditekan
        If e.KeyCode = 13 Then
            cari_data_berdasarkan_nik()
        End If
 End Sub


hasil.


Data ditemukan.






Data tidak ditemukan.









Menyimpan perubahan data dengan perintah SQL Update

Setelah kita menemukan data yang ingin diubah dengan pencarian diatas, kita akan melanjutkan dengan membuat function "simpan_perubahan_data"


Function "simpan_perubahan_data"


Private Sub simpan_perubahan_data()
        'variable script_sql_insert menyimpan perintah insert @nik,@nama,@jk,@tgllahir adalah variable atau paramete
        'ingat untuk kasus ini primary key tidak boleh diubah.
        Dim script_sql_insert = "update karyawan set nama = @nama, jenis_kelamin = @jk, tanggal_lahir = @tgllahir where nik = @nik"
        'usahakan gunakan using supaya objek yang kita buat akan otomatis tertutup kalo udah selesai.
        'ikon sebagai using statement koneksi ke database.
        Using iKon = New OleDbConnection(connection_string)
            'ini pengecekan aja siapa tau ada tuyul yang engga sengaja nyalain koneksi.
            If iKon.State = ConnectionState.Open Then iKon.Close()
            iKon.Open()
            'kasih jebakan petruk buat nangkep error
            Try
                'lagi, gunakan using
                'icmd sebagai statement untuk menjalankan perintah sql menggunakan koneksi ikon
                Using icmd = New OleDbCommand(script_sql_insert, iKon)
                    icmd.Parameters.Add(New OleDbParameter("@nik", tnik.Text))
                    'dengan menggunakan parameter tidak usah khawatir dengan nama yang menggandung ' (apostrop) karena otomatis dianggap sebagai string biasa
                    'dengan parameter kekhawatiran sql injection banyak berkurang.
                    icmd.Parameters.Add(New OleDbParameter("@nama", tnama.Text))
                    icmd.Parameters.Add(New OleDbParameter("@jk", cmbjk.Text))
                    icmd.Parameters.Add(New OleDbParameter("@tgllahir", dttgl_lahir.Value.Date))
                    'setelah parameter dibuat execute icmd
                    icmd.ExecuteNonQuery()
                End Using
                MsgBox("Perubahan Data Berhasil disimpan")
            Catch ex As Exception
                'jika terjadi error ketika menjalankan icmd, akan ditanggkap disini dan dikasih pesan error
                'jika errornya ada di koneksi tidak akan ditangkap disini karena try ini ada didalam koneksi.
                MsgBox("error simpan perubahan data" & vbNewLine & ex.Message)
            End Try
        End Using
    End Sub



Pemanggilan data di tombol save.


 Private Sub btn_simpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_simpan.Click
        If new_entry = 0 Then
            simpan_perubahan_data()
        Else
            simpan_data()
        End If
    End Sub


Hasil.



















Bahasa : VB.Net
IDE : Visual Studio 2010
.Net Framework : 3.5 .Net Framework
Database : Microsoft Access 2007
Pembahasan : CRUD, SQL, Update, Statement Using, OLEDBConnection, OLEDBCommand, OLEDBParameter


sekian untuk posting kali ini, jangan lupa setelah membaca like, share dan sertakan link ini sebagai sumber kalo mau paste artikel ini di blog kalian.

baca juga : 
CRUD:Menambahkan data dengan Perintah SQL Insert di VB.Net


Share:

0 comments:

Post a Comment

Powered by Blogger.

Ads 468x60px

Freelancer

Jaka Pradesa

Data Entry and Softwares

E: j.r.pradesa@gmail.com

Hire me on Freelancer.com

Social Icons