kali ini saya akan memposting tentang Membuat Chained Combobox Dengan VB.NET atau bisa juga disebut dengan Combobox Bertingkat, jadi kita akan membuat beberapa combobox yang saling berhubungan
misal ada 4 buah combobox yaitu provinsi, kabupaten, kecamtan, kelurahan ketika kita memilih salah 1 provinsi maka combobox kabupaten akan terisi sesuai dengan data kabupaten yang berada di provinsi yang kita pilih tersebut
Langkah - langkah Membuat Chained Combobox Dengan VB.NET
1. Persiapkan sebuah database dengan nama lokasi, anda bisa mendownload database yang sudah saya siapkan disini, untuk cara Attach database sql server klik disini
2. Design sebuah form seperti gambar dibawah ini
Object | Properties | Value |
Combobox1 | Name | Cbo_provinsi |
DropDownStyle | DropDownList | |
Combobox2 | Name | Cbo_kabupaten |
DropDownStyle | DropDownList | |
Combobox3 | Name | Cbo_kelurahan |
DropDownStyle | DropDownList | |
Combobox4 | Name | Cbo_kecamatan |
DropDownStyle |
3. Imports namespace System.Data.SqlClient dan ketikan script dibawah ini
'Membuat String koneksi ke database
Private strconn As String = "Data Source=.;Initial Catalog=dblokasi;Persist Security Info=True;User ID=sa; Password=root123"
'Mendeklarasikan variable
Private conn As SqlConnection
Private cmd As SqlCommand
Private adapter As SqlDataAdapter
Private dt As DataTable
4. Pada event Form_load ketikan script dibawah ini
'Mengisi data provinsi
'Menyiapkan sqlconnection
Using conn As New SqlConnection(strconn)
'Menyiapkan query untuk mendapatkan lokasi_nama dan lokasi_provinsi
cmd = New SqlCommand("select lokasi_nama,lokasi_provinsi from lokasi where lokasi_kabupatenkota=0 and lokasi_kecamatan=0 and lokasi_kelurahan=0 order by lokasi_nama asc", conn)
'Menyiapkan adapter
adapter = New SqlDataAdapter(cmd)
'Menyiapkan sebuah datatable untuk menampung data dari sqldataadapter
dt = New DataTable
'Membinding data dari adapter ke datatable
adapter.Fill(dt)
'Mengisi combobox provinsi
cbo_provinsi.DisplayMember = "lokasi_nama"
cbo_provinsi.ValueMember = "lokasi_provinsi"
cbo_provinsi.DataSource = dt
End Using
5. Klik 2 kali pada combobbox provinsi dan ketikan script dibawah ini
If Not IsNothing(cbo_provinsi.SelectedValue) Then
'menyiapkan id dari combobox provinsi
Dim id As Integer = cbo_provinsi.SelectedValue
'Menyiapkan sqlconnection
Using conn As New SqlConnection(strconn)
'Menyiapkan query untuk mendapatkan lokasi_nama dan lokasi_kabupatenkota
cmd = New SqlCommand("select lokasi_nama,lokasi_kabupatenkota from lokasi where lokasi_provinsi='" & id & "' and lokasi_kabupatenkota <> 0 and lokasi_kecamatan=0 and lokasi_kelurahan=0 order by lokasi_nama asc", conn)
'Menyiapkan adapter
adapter = New SqlDataAdapter(cmd)
'Menyiapkan sebuah datatable untuk menampung data dari sqldataadapter
dt = New DataTable
'Membinding data dari adapter ke datatable
adapter.Fill(dt)
'Mengisi combobox kabupaten
cbo_kabupaten.DisplayMember = "lokasi_nama"
cbo_kabupaten.ValueMember = "lokasi_kabupatenkota"
cbo_kabupaten.DataSource = dt
End Using
End If
6. Klik 2 kali pada combobox kabupaten dan ketikan script dibawah ini
'jika nilai dari combobox kabupaten yang terpilih tidak kosong
If Not IsNothing(cbo_kabupaten.SelectedValue) Then
'menyiapkan id dari combobox provinsi
Dim idprovinsi As Integer = cbo_provinsi.SelectedValue
'menyiapkan id dari combobox kabupaten
Dim idkabupaten As Integer = cbo_kabupaten.SelectedValue
'Menyiapkan sqlconnection
Using conn As New SqlConnection(strconn)
'Menyiapkan query untuk mendapatkan lokasi_nama dan lokasi_kecamatan
cmd = New SqlCommand("select lokasi_nama,lokasi_kecamatan from lokasi where lokasi_provinsi='" & idprovinsi & "' and lokasi_kabupatenkota='" & idkabupaten & "' and lokasi_kecamatan <> 0 and lokasi_kelurahan=0 order by lokasi_nama asc", conn)
'Menyiapkan adapter
adapter = New SqlDataAdapter(cmd)
'Menyiapkan sebuah datatable untuk menampung data dari sqldataadapter
dt = New DataTable
'Membinding data dari adapter ke datatable
adapter.Fill(dt)
'mengisi combobox kecamatan
cbo_kecamatan.DisplayMember = "lokasi_nama"
cbo_kecamatan.ValueMember = "lokasi_kecamatan"
cbo_kecamatan.DataSource = dt
End Using
End If
7. Klik 2 kali pada combobox dan ketikan script dibawah ini
'jika nilai dari combobox kecamatan yang terpilih tidak kosong
If Not IsNothing(cbo_kecamatan.SelectedValue) Then
'menyiapkan id dari combobox provinsi
Dim idprovinsin As Integer = cbo_provinsi.SelectedValue
'menyiapkan id dari combobox kabupaten
Dim idkabupaten As Integer = cbo_kabupaten.SelectedValue
'menyiapkan id dari combobox kecamatan
Dim idkecamatan As Integer = cbo_kecamatan.SelectedValue
'Menyiapkan sqlconnection
Using conn As New SqlConnection(strconn)
'Menyiapkan query untuk mendapatkan lokasi_nama dan lokasi_kelurahan
cmd = New SqlCommand("select lokasi_nama,lokasi_kelurahan from lokasi where lokasi_provinsi='" & idprovinsin & "' and lokasi_kabupatenkota='" & idkabupaten & "' and lokasi_kecamatan='" & idkecamatan & "' and lokasi_kelurahan <> 0 order by lokasi_nama asc", conn)
'Menyiapkan adapter
adapter = New SqlDataAdapter(cmd)
'Menyiapkan sebuah datatable untuk menampung data dari sqldataadapter
dt = New DataTable
'Membinding data dari adapter ke datatable
adapter.Fill(dt)
'mengisi combobox kelurahan
cbo_kelurahan.DisplayMember = "lokasi_nama"
cbo_kelurahan.ValueMember = "lokasi_kelurahan"
cbo_kelurahan.DataSource = dt
End Using
End If
8. Jalankan program tersebut dengan menekan F5
Anda bisa mendownload source codenya disini
dan untuk passwordnya disini
Sekian dari saya
Semoga bermanfaat, terima kasih atas kunjungannya
0 komentar:
Post a Comment