Rabu, 26 September 2012

Tutorial Operasi CRUD – Visual Basic .NET


 

1. Membuat project
Setelah masuk ke dalam IDE Visual Studio, buat project baru lewat menu ‘File > New Project’ dengan nama ‘TutorialVB.NET’.
Tutorial vb.net  300x247 Revised: Tutorial Operasi CRUD   Visual Basic .NET
[Klik gambar untuk memperbesar]

2. Membuat Database
Database yang akan digunakan adalah SQLServer 2005 Express Edition. Pada jendela ‘Solution Explorer’ (atau tekan kombinasi tombol CTRL+R untuk menampilkan Solution Explorer), klik kanan pada project ‘TutorialVB.NET’ > Add > New Item
Tutorial vb.net1  300x194 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Pada jendela yang muncul, pilih ‘Service-based Database’ dan beri nama ‘Database1.mdf’
Tutorial vb.net 2 300x180 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Klik ‘Add’ maka sebuah jendela baru ‘Data Source Configuration Wizard’ akan tampil. Klik ‘Finish’ untuk menambahkan Datasource baru tersebut ke dalam project.
Tampilan pada ‘Solution Explorer’ akan menjadi seperti ini:
Tutorial vb.net 3 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Database1.mdf telah ditambahkan ke dalam Solution Explorer
3. Membuat tabel
Pada bagian kiri dari IDE, buka panel ‘Server Explorer’pada (atau dengan mengklik kombinasi tombol CTRL+ALT+S). Klik kanan pada node ‘Table’ dan pilih ‘Add New Table’. Klik ‘Save’ dan beri nama ‘tblBarang’.
Tutorial vb.net 4 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Kita akan membuat tabel barang. Buatlah field-field baru seperti tampilan berikut:
Tutorial vb.net 5 300x147 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Selanjutnya field pada KdBarang akan dijadikan sebagai ‘primary key’ dengan nilai auto increment sebanyak 1. Caranya, klik kanan pada baris KdBarang dan pilih ‘Set Primary Key’ untuk menjadikan field KdBarang sebagai primary key pada tabel ini.
Tutorial vb.net 6 300x99 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Pada bagian kiri dari field KdBarang akan muncul tanda kunci berwarna kuning yang menandakan bahwa field KdBarang tersebut merupakan sebuah ‘Primary Key’/’Index’.
Selanjutnya kita akan membuat incremental value untuk field KdBarang dengan merubah nilai dari ‘Identity Specification’. Caranya: Pada bagian bawah dari table designer, dalam tab ‘Column Properties’, ubah nilai (IsIdentity) menjadi ‘Yes’ dengan ‘Identity Increment’ = 1 dan ‘Identity Seed’ = 1. Ini akan menjadikan nilai dari KdBarang menjadi auto increment sehingga bisa mengurangi kemungkinan duplikasi kode barang dalam proses transaksi. Lihat gambar:
Tutorial vb.net 7 300x216 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Jadikan Default Value dari field ‘Jumlah’, ‘Harga’ dan ‘Dihapus’ menjadi nilai 0.
Tutorial vb.net 8 300x214 Revised: Tutorial Operasi CRUD   Visual Basic .NET
4. Menambah Module
Kita akan lanjutkan dengan menambah modul baru ke dalam project. Kegunaan atau fungsi dari modul ini nantinya adalah untuk menyimpan prosedur dan fungsi-fungsi serta variabel public yang akan digunakan oleh setiap class dalam project.
Pertama-tama, tambahkan folder baru ke dalam project dengan cara klik kanan pada project ‘TutorialVB.NET’ > ‘Add’ > ‘New Folder’ dan beri nama ‘Functions’. Kemudian klik kanan pada folder ‘Functions’ yang baru ditambahkan tadi kemudian pilih ‘Add’ > ‘Module’ untuk menambah modul baru ke dalam project. Beri nama modul baru tersebut dengan nama ‘PublicFunctions’.
Tutorial vb.net 9 300x225 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Tutorial vb.net 10 300x180 Revised: Tutorial Operasi CRUD   Visual Basic .NET
5. Menulis kode untuk public functions
Pada modul yang baru dibuat tadi (PublicFunction.vb), ketikkan kode berikut:
  1. Imports System.Data.SqlClient   'Untuk proses ke database  
  2. Imports System.IO               'Untuk proses penyimpanan log error  
  3.   
  4. Module PublicFunctions  
  5.     'Deklarasikan DBConnection sebagai object dari SQLConnection dengan string koneksi dari Database1ConnectionString  
  6.     Public DBConnection As New SqlConnection(My.Settings.Database1ConnectionString)  
  7.     Public ErrorLog As Boolean = True   'Aktifkan error log  
  8.     Public lastSQL As String = ""       'String perintah sql terakhir  
  9.   
  10.     Public Function OpenConnection(ByRef RetMessage As StringAs SqlConnection  
  11.         Try  
  12.             DBConnection.Open()  
  13.         Catch ex As SqlException  
  14.             RetMessage = ex.Message  
  15.             Return Nothing  
  16.         Catch ex As Exception  
  17.             RetMessage = ex.Message  
  18.             Return Nothing  
  19.         End Try  
  20.         Return DBConnection  
  21.   
  22.     End Function  
  23.   
  24.     Public Function DoSqlDataView(ByVal str As StringAs DataView  
  25.   
  26.         Try  
  27.             Dim da As SqlDataAdapter  
  28.   
  29.             Dim ds As DataSet  
  30.             Dim dv As DataView  
  31.   
  32.             da = New SqlDataAdapter(str, DBConnection)  
  33.             ds = New DataSet  
  34.             da.Fill(ds)  
  35.             dv = New DataView(ds.Tables(0))  
  36.             Return dv  
  37.         Catch e As Exception  
  38.             'Jika terjadi kesalahan, simpan pesan kesalahan ke dalam file  
  39.             saveerrormessage(e.Message, e.StackTrace, e.<a rel="nofollow" target="_blank" title="Source" href="http://www.indosourcecode.blogspot.com">Source</a>)  
  40.         End Try  
  41.         Return New DataView  
  42.   
  43.     End Function  
  44.   
  45.     Public Function DoSqlCommand(ByVal str As StringAs Boolean  
  46.         Try  
  47.             lastSQL = str  
  48.   
  49.             Dim cm As SqlCommand  
  50.             cm = New SqlCommand(str, DBConnection)  
  51.             cm.ExecuteNonQuery()  
  52.             Return True  
  53.         Catch e As Exception  
  54.             'Jika terjadi kesalahan, simpan pesan kesalahan ke dalam file  
  55.             saveerrormessage(e.Message, e.StackTrace, e.<a rel="nofollow" target="_blank" title="Source" href="http://www.indosourcecode.blogspot.com">Source</a>)  
  56.             Return False  
  57.         End Try  
  58.   
  59.     End Function  
  60.   
  61.     Public Function GetIdentity(ByVal pFromTableName As StringAs Integer  
  62.         Dim str As String  
  63.         Dim dv As DataView  
  64.         Dim iIdentity As Integer  
  65.         str = "SELECT @@IDENTITY as myValue FROM " & pFromTableName  
  66.         dv = DoSqlDataView(str)  
  67.         If dv.Count > 0 Then  
  68.             iIdentity = CInt(dv(0)(0))  
  69.         End If  
  70.         Return iIdentity  
  71.     End Function  
  72.   
  73.     Public Function PrepareStr(ByVal strValue As StringAs String  
  74.         Try  
  75.             If strValue.Trim() = "" Then  
  76.                 Return "''"  
  77.             Else  
  78.                 strValue = strValue.Replace("'""''")  
  79.                 Return "'" & strValue.Trim & "'"  
  80.             End If  
  81.         Catch e As Exception  
  82.             saveerrormessage(e.Message, e.StackTrace, e.<a rel="nofollow" target="_blank" title="Source" href="http://www.indosourcecode.blogspot.com">Source</a>)  
  83.             Return "''"  
  84.         End Try  
  85.   
  86.     End Function  
  87.   
  88.     Public Sub saveerrormessage(ByVal Message As StringByVal stacktrace As StringByVal <a rel="nofollow" target="_blank" title="source" href="http://www.indosourcecode.blogspot.com">source</a> As String)  
  89.         If ErrorLog = True Then  
  90.             Dim errout As System.IO.StreamWriter  
  91.             Dim errfilename As String = "RtError.txt"   'RtError merupakan nama file yang akan digunakan  
  92.             If Not File.Exists(errfilename) Then  
  93.                 'file untuk menyimpan log error belum ada, buat baru..  
  94.                 errout = File.CreateText(errfilename)  
  95.             Else  
  96.                 errout = File.AppendText(errfilename)  
  97.             End If  
  98.   
  99.             'Buka dan tulis pesan error ke dalam file  
  100.             errout.WriteLine("******* TutorialVB.NET RUNTIME ERROR *******")  
  101.             errout.WriteLine("Date :" + CStr(Now()))  
  102.             errout.WriteLine("MSG  :" + Message)  
  103.             errout.WriteLine("SQL  :" + lastSQL)  
  104.             errout.WriteLine("SOURCE :" + source)  
  105.             errout.WriteLine("STACK  :" + stacktrace)  
  106.             errout.Flush()  
  107.             errout.Close()  
  108.         End If  
  109.   
  110.     End Sub  
  111. End Module  
6. Menambah kontrol ListView ke dalam form
Sekarang masuk ke tahap desain form icon biggrin Revised: Tutorial Operasi CRUD   Visual Basic .NET . Kembali ke ‘Solution Explorer’, pada ‘Solution Explorer’ klik dua kali pada form ‘Form1’.
Buka panel ‘Toolbox’ pada bagian kiri (tekan kombinasi tombol CTRL+ALT+X untuk membuka panel ‘Toolbox’), dan pilih kontrol ListView. Klik tahan dan geser kontrol ListView ke dalam form.
Tutorial vb.net 11 300x221 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Atur posisi dan ukuran dari ListView yang baru dimasukkan tadi sesuai selera dan ubah nama kontrol menjadi ‘LvBarang’ melalui panel ‘Properties’(tekan tombol F4 saat kontrol sedang dipilih untuk menampilkan panel ‘Properties’).
Tutorial vb.net 12 300x194 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Selanjutnya akan kita tambahkan kolom-kolom baru pada kontrol ‘LvBarang’ dengan klik kanan pada ‘LvBarang’ dan pilih ‘Edit Columns’.
Tutorial vb.net 13 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Pada kotak dialog ‘ColumnHeader Collection editor’ yang muncul, klik tombol ‘Add’ untuk menambah kolom baru. Masukkan ‘cKdBarang’ pada bagian ‘Name’ dan ‘Kode’ pada bagian ‘Text’.
Tutorial vb.net 14 300x215 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Tambahkan 3 anggota kolom berikutnya dengan nama dan text masing-masing:
Name: cNoBarang, Text: No. Barang
Name: cNmBarang, Text: Nama
Name: cJumlah, Text:Jumlah
Name: cHarga, Text:Harga
Tutorial vb.net 15 300x215 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Klik OK untuk menutup kotak dialog ‘ColumnHeader Collection Editor’.
Masih pada LvBarang, pada panel ‘Properties’, ubah nilai ‘FullRowSelect’=True, ‘MultiSelect’=False dan ‘View’=Details.
Tutorial vb.net 16 300x299 Revised: Tutorial Operasi CRUD   Visual Basic .NET
7. Menambah kontrol Textbox dan Label ke dalam form
Tampilkan panel Toolbox, pilih kontrol Texbox dan geser ke dalam form (cara hampir sama dengan cara memasukkan kontrol ListView ke dalam form). Masukkan 4 buah kontrol textbox. Atur posisi dan ukuran masing-masing Textbox sesuai selera. Properti name untuk setiap Textbox adalah sebagai berikut (atur melalui panel ‘Properties’ dengan menekan tombol F4 saat kontrol sedang dipilih):
Nama untuk masing-masing Textbox:
Name: TbNoBarang
Name: TbNmBarang
Name: TbJumlah
Name: TbHarga
Tambahkan juga 4 buat kontrol Label ke dalam form..
Nama dan Text untuk masing-masing Label:
Name: LbNoBarang, Text: No.:
Name: LbNmBarang, Text:Nama:
Name: LbJumlah, Text: Jumlah:
Name: LbHarga, Text: Harga:
Atur ukuran dan posisi kontrol-kontrol Texbox tersebut menjadi seperti gambar berikut..
Tutorial vb.net 17 300x179 Revised: Tutorial Operasi CRUD   Visual Basic .NET
8. Menambah kontrol Button ke dalam form
Pada panel ‘Toolbox’ pilih kontrol ‘Button’, klik tahan dan geser ke dalam form. Ganti properti Name dari kontrol Button tersebut melalui panel ‘Properties’.
Tutorial vb.net 18 300x117 Revised: Tutorial Operasi CRUD   Visual Basic .NET
Tambahkan 5 kontrol Button ke dalam form, dengan property Name dan Text untuk masing-masing Button:
Name: cmdBaru, Text: Baru
Name: cmdEdit, Text: Edit
Name: cmdSimpan, Text: Simpan
Name: cmdHapus, Text: Hapus
Name: cmdTutup, Text: Tutup
Atur lokasi dan posisi kelima kontrol Button tersebut seperti gambar:
Tutorial vb.net 19 300x217 Revised: Tutorial Operasi CRUD   Visual Basic .NET
9. Menulis kode
Ok, setelah user interface (UI) untuk form1 telah jadi, kini saatnya kita mulai menulis kode untuk Form1.
Pilih Form1.vb dari daftar object pada panel ‘Solution Explorer’. Klik kanan pada Form1.vb dan pilih ‘View Code’ atau dengan menekan tombol ‘F7’ pada keyboard.
Pada ‘Code View’ yang baru dibuka hanya akan terdapat 2 baris kode :
  1. Public Class Form1  
  2.   
  3. End Class  
Sebelum melanjutkan ke penulisan kode pada Form1, kita akan membuat modul baru yang akan memuat daftar field dari dalam tabel barang yang telah dibuat .
10. Module TableList.vb
Melalui modul ini kita akan membuat Class-class untuk setiap tabel dalam database. Setiap Class dalam modul ini akan mewakili nama tabel dalam database.. dan setiap konstanta dalam modul ini akan mewakili nama dari setiap field dalam tabel tblBarang.
Tambahkan modul baru ke dalam project di dalam folder ‘Functions’. Klik kanan pada folder ‘Functions’ dan pilih ‘Add’ > ‘Module’.
Ubah nama modul menjadi ‘TableList.vb’ dan klik tombol ‘Add’.
Tutorial vb.net 20 300x180 Revised: Tutorial Operasi CRUD   Visual Basic .NET[Klik gambar untuk memperbesar]
Dalam modul TableList.vb, tambahkan Class baru dengan nama tblBarang. Di dalam class tblBarang, tambahkan beberapa konstanta public sebagai wakil dari field-field dalam tabel tblBarang:
  1. Module TableList  
  2.     Public Class tblBarang  
  3.         Public Const _tablename As String = "tblBarang"    'Nama tabel  
  4.         Public Const KdBarang As String = "KdBarang"       'Field KdBarang dalam tabel  
  5.         Public Const NoProduk As String = "NoProduk"       'Field NoBarang dalam tabel  
  6.         Public Const NmBarang As String = "NmBarang"       'Field NmBarang dalam tabel  
  7.         Public Const Jumlah As String = "Jumlah"           'Field Jumlah dalam tabel  
  8.         Public Const Harga As String = "Harga"             'Field Harga dalam tabel  
  9.         Public Const Dihapus As String = "Dihapus"          'Field Dihapus dalam tabel  
  10.     End Class  
  11. End Module  
11. PublicSQLBuilder
Setelah class dari tblBarang dibuat saatnya kita masuk ke bagian PublicSQLBuilder. Modul PublicSQLBuilder merupakan suatu module yang akan digunakan untuk memudahkan kita dalam mengeksekusi perintah-perintah SQL ke dalam database. Modul ini terdiri dari beberapa classs.
Class-class dalam modul PublicSQLBuilder terdiri dari:
Class SQLCaseWhenObject
Class SQLDataObject
Class SQLGroupStatement
Class SQLJoinStatement
Class SQLOrderStatement
Class SQLStringField
Class SQLTabelField
Class SQLWhereField
Class SQLInsertBuilder
Class SQLSelectBuilder
Class SQLUpdateBuilder
Dalam menggunakan PublicSQLBuilder ini, tidak diperbolehkan menghapus data dalam database. Sebagai penggantinya, gunakan field ‘Dihapus’ yang terdapat dalam tabel tblBarang.
Contoh penggunaan PublicSQLBuilder:
Untuk menjalankan perintah SELECT:
  1. Dim sqlSelect As New SQLSelectBuilder  
  2.         With sqlSelect  
  3.             .AddTable(tblBarang._tablename)  
  4.             .AddField(tblBarang.KdBarang)  
  5.             .AddField(tblBarang.NmBarang)  
  6.             .AddField(tblBarang.NoProduk)  
  7.             .AddField(tblBarang.Jumlah)  
  8.             .AddField(tblBarang.Harga)  
  9.             .AddWhere(tblBarang.Dihapus, "=", 0)  
  10.         End With  
Untuk mendapatkan hasil dari statement di atas, gunakan property ‘getsqlcommand’
sqlSelect.getsqlcommand
Hasil dari sqlSelect.getsqlcommand adalah:
“SELECT KdBarang, NmBarang, NoProduk, Jumlah, Harga FROM tblBarang WHERE Dihapus = 0”
Untuk statement WHERE yang lebih dari satu gunakan keyword “AND”:
  1. .AddField(tblBarang.Harga)  
  2. .AddWhere(tblBarang.Dihapus, "=", 0)  
  3. .AddWhere(“AND”, tblBarang.Harga, ">", 100)  
Untuk menjalankan perintah INSERT:
  1. Dim sqlInsert As New SQLInsertBuilder  
  2.         With sqlInsert  
  3.             .AddTable(tblBarang._tablename)  
  4.             .AddField(tblBarang.NoProduk, TbNoBarang.Text)  
  5.             .AddField(tblBarang.NmBarang, TbNmBarang.Text)  
  6.             .AddField(tblBarang.Jumlah, TbJumlah.Text)  
  7.             .AddField(tblBarang.Harga, TbHarga.Text)  
  8.         End With  
Hasil dari sqlInsert.getsqlcommand untuk statement di atas adalah:
“INSERT INTO tblBarang(NoProduk, NmBarang, Jumlah, Harga) VALUES (1,2,3,4)”
PublicSQLBuilder akan dibahas lebih lanjut pada saat penulisan koding ke dalam Form1
12. Menyatukan semua Fungsi dan Module ke dalam Form1
Kita kembali ke Form1. Tampilkan tampilan ‘Code View’ untuk Form1. Kita akan mencoba mengetik kode perintah untuk mengisi LvBarang dengan data-data dari database.
Yang akan kita lakukan adalah:
- Menampilkan data barang saat pertama kali form dibuka
- Menambah data baru ke dalam tabel tblBarang saat tombol simpan diklik.
- Meng-update data lama ke dalam tabel tblBarang saat tombol simpan diklik.
- Membedakan proses edit dan simpan saat tombol-tombol atau LvBarang diklik.
- Mengambil nilai dari KdBarang saat item dalam control LvBarang dipilih kemudian disimpan ke dalam variabel KdBarang.
.Menampilkan data barang saat pertama kali form dibuka
Dalam ‘Code View’ dari Form1, pada dropdown ‘Class Name’ di bagian kiri, pilih ‘(Form 1 Events)’ dan pada dropdown ‘Method Name’ di bagian kanan pilih ‘Load’.
Ketikkan kode berikut dalam Sub Form1_Load:
Sehingga menjadi :
  1. Private Sub Form1_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load  
  2.         loadData()  
  3. End Sub  
Berikut kode untuk sub loadData() :
  1. Private Sub loadData()  
  2.         'Menampilkan data dari database ke kontrol ListView LvBarang  
  3.         'Di sini kita mulai menggunakan PublicSQLBuilder  
  4.         'Deklarasikan sqlSelect sebagai Class SQLSelectBuilder  
  5.         Dim sqlSelect As New SQLSelectBuilder  
  6.         With sqlSelect  
  7.             .AddTable(tblBarang._tablename)     'Menambah tabel barang ke daftar tabel yang akan digunakan  
  8.             .AddField(tblBarang.KdBarang)       'Menambah KdBarang ke daftar Field yang akan diambil  
  9.             .AddField(tblBarang.NmBarang)       'Menambah NmBarang ke daftar Field  
  10.             .AddField(tblBarang.NoProduk)       'Menambah NoProduk ke daftar Field  
  11.             .AddField(tblBarang.Jumlah)         'Menambah Jumlah ke daftar Field  
  12.             .AddField(tblBarang.Harga)          'Menambah Harga ke daftar Field  
  13.             .AddWhere(tblBarang.Dihapus, "=", 0) 'Hanya memilih barang yang belum dihapus (Dihapus = 0)  
  14.         End With  
  15.         'Hasil dari sqlSelect pada property getsqlcommand dengan cara di atas adalah:  
  16.         'SELECT KdBarang, NmBarang, NoProduk, Jumlah, Harga from tblBarang WHERE Dihapus = 0  
  17.   
  18.         Dim dv As New Data.DataView  
  19.         dv = DoSqlDataView(sqlSelect.getsqlcommand)  
  20.         If dv.Count <> 0 Then  
  21.             'Mengosongkan daftar barang dari dalam kontrol LvBarang  
  22.             LvBarang.Items.Clear()  
  23.             'Loop sampai semua data terbaca  
  24.             For i As Integer = 0 To dv.Count - 1    'Menggunakan -1 agar nilai i dan nilai index dari dv sesuai  
  25.                 'Deklarasikan lv sebagai ListViewItem yang akan ditambahkan ke dalam kontrol LvBarang  
  26.                 'Tambahkan setiap nilai yang didapat dari database (dalam dataview dv) ke dalam object lv  
  27.                 Dim lv As New ListViewItem(CStr(dv(i)(tblBarang.KdBarang))) 'Mengambil nilai dari KdBarang pada index ke i  
  28.                 With lv.SubItems  
  29.                     .Add(CStr(dv(i)(tblBarang.NoProduk)))  
  30.                     .Add(CStr(dv(i)(tblBarang.NmBarang)))  
  31.                     .Add(CStr(dv(i)(tblBarang.Jumlah)))  
  32.                     .Add(CStr(dv(i)(tblBarang.Harga)))  
  33.                 End With  
  34.                 'Mengisi control LvBarang dengan isi dari lv  
  35.                 Me.LvBarang.Items.Add(lv)  
  36.             Next  
  37.         End If  
  38.     End Sub  
Kiranya penjelasan dari kode di atas cukup jelas sehingg belum perlu untuk dijabarkan lagi.. icon biggrin Revised: Tutorial Operasi CRUD   Visual Basic .NET
Jika dijalankan (dengan menekan tombol F5 pada keyboard) maka aplikasi akan menampilkan data-data barang yang terdapat dalam tabel barang yang memiliki nilai Dihapus = 0.
Untuk proses edit dan tambah data barang, kita tambahkan lagi 2 sub prosedur masing-masing untuk menambah data baru dan satunya lagi untuk meng-update data yang lama..
.Menambah data baru ke dalam tabel tblBarang saat tombol simpan diklik.
Tambahkan kode berikut ke dalam Form1:
  1. Private Sub tambahData()  
  2.         'Deklarasikan sqlInsert sebagai SQLInsertBuilder dari modul PublicSQLBuilder (Persiapan menambah data baru)  
  3.         Dim sqlInsert As New SQLInsertBuilder  
  4.         With sqlInsert  
  5.             .AddTable(tblBarang._tablename)                 'Nama tabel yang akan dipakai  
  6.             .AddField(tblBarang.NoProduk, TbNoBarang.Text)  'Menambah isi NoProduk dengan nilai pada TbNoBarang  
  7.             .AddField(tblBarang.NmBarang, TbNmBarang.Text)  'Menambah isi NmBarang dengan nilai pada TbNmBarang  
  8.             .AddField(tblBarang.Jumlah, TbJumlah.Text)      'Menambah isi Jumlah dengan nilai pada TbJumlah  
  9.             .AddField(tblBarang.Harga, TbHarga.Text)        'Menambah isi Harga dengan nilai pada TbHarga  
  10.         End With  
  11.         If DoSqlCommand(sqlInsert.getsqlcommand) Then       'Menjalankan perintah dari sqlInsert menggunakan DoSqlCommand  
  12.             'Nilai dari KdBarang terakhir belum bisa diketahui, untuk mengetahui nilai dari suatu field yang  
  13.             'bertipe auto increment bisa dengan menggunakan fungsi GetIdentity  
  14.             'Mengambil nilai dari KdBarang yang baru dimasukkan  
  15.             Dim KdBarangTerakhir As Integer = GetIdentity(tblBarang._tablename)  
  16.             MessageBox.Show("Data berhasil disimpan dengan kode " & KdBarangTerakhir, Me.Text)  
  17.         Else  
  18.             MessageBox.Show("Gagal menyimpan data."Me.Text)  
  19.         End If  
  20.     End Sub  
Kemudian tekan kombinasi tombol SHIFT+F7 untuk kembali ke Designer View. Dari Designer View, klik dua kali tombol simpan, maka kita akan kembali ke dalam Code View. Ketikkan perintah berikut di dalam sub cmdSimpan_Click()
Sekarang kita sudah bisa menambah data pada database. Coba jalankan aplikasi dengan menekan tombol F5 pada keyboard, masukkan data-data dan klik tombol Simpan untuk mencoba hasilnya..
.Meng-update data lama ke dalam tabel tblBarang saat tombol simpan diklik.
Tambahkan kode berikut ke dalam Form1:
  1. Private Sub updateData(Optional ByVal hapus As Boolean = False)  
  2.         'Deklarasi sqlUpdate sebagai SQLUpdateBuilder (Persiapan mengupdate data lama)  
  3.         Dim sqlUpdate As New SQLUpdateBuilder  
  4.         With sqlUpdate  
  5.             .AddTable(tblBarang._tablename)                     'Nama tabel yang akan diupdate  
  6.             .AddField(tblBarang.NoProduk, TbNoBarang.Text)      'Update nilai NoProduk dengan nilai dari TbNoBarang  
  7.             .AddField(tblBarang.NmBarang, TbNmBarang.Text)      'Update nilai NmBarang dengan nilai dari TbNmBarang  
  8.             .AddField(tblBarang.Jumlah, TbJumlah.Text)          'Update nilai Jumlah dengan nilai dari TbJumlah  
  9.             .AddField(tblBarang.Harga, TbHarga.Text)            'Update nilai Harga dengan nilai dari TbHarga  
  10.             'Bila hapus bernilai TRUE, maka data akan dihapus  
  11.             If hapus Then  
  12.                 .AddField(tblBarang.Dihapus, 1)  
  13.             End If  
  14.             .AddWhere(tblBarang.KdBarang, "="Me.KdBarang)     'Kode dari barang yang akan dihapus  
  15.         End With  
  16.         If DoSqlCommand(sqlUpdate.getsqlcommand) Then           'Menjalankan perintah dari sqlUpdate menggunakan DoSqlCommand  
  17.             MessageBox.Show("Data berhasil diupdate"Me.Text)  
  18.         Else  
  19.             MessageBox.Show("Gagal mengupdate data."Me.Text)  
  20.         End If  
  21.     End Sub  
Kembali ke Designer View, klik 2 kali pada tombol simpan untuk tambahkan kode berikut yang akan meng-update data dalam tblBarang.
Ubah kode dalam sub cmdSimpan_Click() sehingga menjadi seperti berikut:
  1. 'Jika tidak sedang dalam kondisi Edit maka panggil prosedur tambahData, dan sebaliknya  
  2.         If _sedangEdit = False Then  
  3.             tambahData()  
  4.         Else  
  5.             updateData()  
  6.         End If  
. Membedakan proses edit dan simpan saat tombol-tombol atau LvBarang diklik.
Karena untuk proses tambah dan edit menggunakan satu tombol (cmdSimpan) maka ada beberapa logika yang perlu kita tambahkan.
Sebelumnya nonaktifkan tombol Simpan saat Form pertama kali ditampilkan, tambahkan kode cmdSimpan.Enabled = False :
  1. Private Sub Form1_Load(ByVal sender As ObjectByVal e As System.EventArgs) Handles Me.Load  
  2.         'Tampilkan data saat pertama kali Form1 di tampilkan  
  3.         loadData()  
  4.         'Nonaktifkan tombol simpan  
  5.         cmdSimpan.Enabled = False  
  6.     End Sub  
Pertama-tama kita buat sebuah variabel _sedangEdit dan beberapa sup prosedur yang masing-masing terdiri dari ‘Membuka textbox’, ‘Mengunci textbox’ dan ‘Mengosongkan textbox’.
Masukkan kode seperti di bawah ini ke dalam Form1:
  1. Private _sedangEdit As Boolean = False  
  2.   
  3.     Sub _kunciTeks()  
  4.         Me.TbHarga.Enabled = False  
  5.         Me.TbJumlah.Enabled = False  
  6.         Me.TbNmBarang.Enabled = False  
  7.         Me.TbNoBarang.Enabled = False  
  8.     End Sub  
  9.   
  10.     Sub _bukaTeks()  
  11.         Me.TbHarga.Enabled = True  
  12.         Me.TbJumlah.Enabled = True  
  13.         Me.TbNmBarang.Enabled = True  
  14.         Me.TbNoBarang.Enabled = True  
  15.     End Sub  
  16.   
  17.     Sub _resetTeks()  
  18.         Me.TbHarga.Text = ""  
  19.         Me.TbJumlah.Text = ""  
  20.         Me.TbNmBarang.Text = ""  
  21.         Me.TbNoBarang.Text = ""  
  22.     End Sub  
Kita mulai dari cmdBaru..
Kembali ke Designer View dan klik 2 kali tombol Baru (cmdBaru), kita akan dibawa kembali ke Code View..
Ketikkan kode berikut pada sub cmdBaru_Click()
  1. _sedangEdit = False             'Ini bukan proses edit  
  2.         _resetTeks()                    'Kosongkan textbox  
  3.         KdBarang = 0                    'Pastikan nilai pada variabel KdBarang = 0  
  4.         If cmdBaru.Text = "Baru" Then   'Jika text cmdBaru = Baru  
  5.             cmdSimpan.Enabled = True    'Aktifkan cmdSimpan  
  6.             cmdEdit.Enabled = False     'Nonaktifkan cmdEdit  
  7.             cmdHapus.Enabled = False    'Nonaktifkan cmdHapus  
  8.             cmdBaru.Text = "Batal"      'Ubah text cmdBaru menjadi Batal  
  9.             KdBarang = 0  
  10.             _bukaTeks()                 'Aktifkan Textbox  
  11.         Else                            'Jika text pada cmdBaru = Batal  
  12.             cmdBaru.Text = "Baru"       'Ubah text pada cmdBaru menjadi Baru  
  13.             cmdSimpan.Enabled = False   'Nonaktifkan cmdSimpan  
  14.             cmdEdit.Enabled = True      'Aktifkan cmdEdit  
  15.             cmdHapus.Enabled = True     'Aktifkan cmdHapus  
  16.             _kunciTeks()                'Nonaktifkan semua textbox  
  17.         End If  
Untuk cmdEdit:
Pertama-tama kita perlu mengambil nilai dari KdBarang dari barang yang dipilih dalam LvBarang. Kembali ke ‘Designer View’, klik 2 kali LvBarang, kita akan diajak kembali ke tampilan ‘Code View’. Pada bagian kanan dari ‘Code View’, ubah Method name menjadi Click:
Tutorial vb.net 22 300x55 Revised: Tutorial Operasi CRUD   Visual Basic .NET
dan ketikkan kode berikut ke dalam sub LvBarang_Click()
  1. Private Sub LvBarang_Click(ByVal sender As ObjectByVal e As System.EventArgs) Handles LvBarang.Click  
  2.         'Validasi: apakah di dalam kontrol LvBarang terdapat barang? Jika tidak ada, keluar dari Sub  
  3.         If LvBarang.Items.Count = 0 Then  
  4.             Exit Sub  
  5.         End If  
  6.   
  7.         'Jika tidak ada barang yang dipilih, tampilkan pesan  
  8.         If LvBarang.SelectedItems.Count = 0 Then  
  9.             MessageBox.Show("Data tidak tersedia."Me.Text)  
  10.             Exit Sub  
  11.         End If  
  12.   
  13.         'Mengambil nilai dari KdBarang pada barang yang terdapat pada index 0 dari item yang dipilih dari dalam LvBarang  
  14.         KdBarang = CInt(LvBarang.SelectedItems(0).SubItems(0).Text)  
  15.   
  16.         'Mengisi tiap textbox dengan nilai dari barang yang dipilih dalam LvBarang  
  17.         Me.TbNoBarang.Text = LvBarang.SelectedItems(0).SubItems(1).Text  
  18.         Me.TbNmBarang.Text = LvBarang.SelectedItems(0).SubItems(2).Text  
  19.         Me.TbJumlah.Text = LvBarang.SelectedItems(0).SubItems(3).Text  
  20.         Me.TbHarga.Text = LvBarang.SelectedItems(0).SubItems(4).Text  
  21.     End Sub  
Kembali ke ‘Designer View’, klik 2 kali pada tombol cmdEdit dan masukkan kode berikut ke dalam sub cmdEdit_Click()
  1. If KdBarang = 0 Then    'Jika belum ada barang yang dipilih dari dalam LvBarang, maka tampilkan pesan  
  2.             MessageBox.Show("Silahkan pilih barang dari daftar."Me.Text)  
  3.             Exit Sub  
  4.         End If  
  5.         _sedangEdit = True          'Ubah variabel _sedangEdit menjadi True  
  6.         _bukaTeks()                 'Aktifkan textbox  
  7.         cmdBaru.Text = "Batal"      'Ubah text pada cmdBaru menjadi "Batal"  
  8.         cmdSimpan.Enabled = True    'Aktifkan cmdSimpan  
  9.         cmdEdit.Enabled = False     'Nonaktifkan cmdEdit  
  10.         cmdHapus.Enabled = False    'Nonaktifkan cmdHapus  
Untuk tombol cmdHapus:
Kembali ke ‘Designer View’, klik 2 kali pada cmdHapus dan masukkan kode berikut ke dalam sub cmdHapus_Click()
  1. Private Sub cmdHapus_Click(ByVal sender As System.ObjectByVal e As System.EventArgs) Handles cmdHapus.Click  
  2.         'Jika tidak ada barang yang dipilih, tampilkan pesan  
  3.         If KdBarang = 0 Then  
  4.             MessageBox.Show("Tidak ada barang yang dipilih."Me.Text)  
  5.             Exit Sub  
  6.         End If  
  7.   
  8.         'Tampilkan pesan konfirmasi penghapusan data  
  9.         If MessageBox.Show("Ingin menghapus barang ini?"Me.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.No Then  
  10.             Exit Sub  
  11.         End If  
  12.   
  13.         'Mulai proses penghapusan dengan memanggil prosedur updateData dengan mengatur nilai 'hapus' menjadi True  
  14.         updateData(True)  
  15.         'Kosongkan textbox  
  16.         _resetTeks()  
  17.         'Muat ulang semua data untuk melihat perubahan  
  18.         loadData()  
  19.     End Sub  
Untuk cmdTutup:
Kembali ke Designer View, klik 2 kali tombol cmdTutup dan masukkan kode berikut ke dalam sub cmdTutup_Click()
Selesai….. Coba jalankan aplikasi dengan menekan tombol F5 pada keyboard.

Sumber: www.idfreelance.net

Tidak ada komentar:

Posting Komentar