Belajar Programming | Salah satu hal yang amat sangat umum dalam membuat sebuah aplikasi VB.net atau C# adalah mengisi ComboBox dengan berdasarkan data yang ada di database. Sebenarnya hal ini sangat simple namun bagi para programmer bisa jadi merupakan hal yang sangat sulit 🙂 Cara yang paling mudah adalah dengan menggunakan metoda data-binding sehingga kita bisa menghilangkan dan menghapus code iterasi yang melelahkan saat mengisi data ke combobox bersangkutan. Langkah-langkah atau algoritma dasarnya adalah sebagai berikut:
- Siapkan koneksi database
- Siapkan perintah SQL
- Siapkan variable penampung data (bisa DataTable atau DataSet)
- Ambil data dari database, masukkan ke DataTable
- Binding data di DataTable ke ComboBox
Algortima yang sederhana di atas ketika kita terjemahkan ke dalam VB.net akan seperti ini,
Imports System.Data Imports System.Data.SqlClient Public Class Form1 Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load InitializeComboBox() End Sub Private Sub InitializeComboBox() ' siapkan koneksi database Dim cn As New SqlConnection(My.Settings.LocalDatabase) ' siapkan data adapter untuk data retrieval Dim da As New SqlDataAdapter("select account_id, description from acc_accounts", cn) ' siapkan datatable untuk menampung data dari database Dim dt As New DataTable ' enclose in try-catch block ' untuk menghindari crash jika terjadi kesalahan database Try ' ambil data dari database da.Fill(dt) ' bind data ke combobox ComboBox1.DataSource = dt ComboBox1.ValueMember = "account_id" ComboBox1.DisplayMember = "description" ' DONE!!! Catch ex As Exception ' tampilkan pesan error MessageBox.Show(ex.Message) End Try End Sub End Class
Sedangkan jika kita terjemahkan ke dalam C# akan menjadi seperti ini,
using System; using System.Data; using System.Data.SqlClient; using System.Windows.Forms; namespace ComboBoxSample2 { public partial class Form1 : Form { public Form1() { InitializeComponent(); InitializeComboBox(); } private void InitializeComboBox() { // siapkan koneksi database SqlConnection cn = new SqlConnection(ComboBoxSample2.Properties.Settings.Default.LocalDatabase); // siapkan data adapter untuk data retrieval SqlDataAdapter da = new SqlDataAdapter("select account_id, description from acc_accounts", cn); // siapkan datatable untuk menampung data dari database DataTable dt = new DataTable(); // enclose in try-catch block // untuk menghindari crash jika terjadi kesalahan database try { // ambil data dari database da.Fill(dt); // bind data ke combobox ComboBox1.DataSource = dt; ComboBox1.ValueMember = "account_id"; ComboBox1.DisplayMember = "description"; // DONE!!! } catch (Exception ex) { // tampilkan pesan error MessageBox.Show(ex.Message); } } } }
Jika data yang ada di database seperti ini,
Maka tampilan aplikasinya jadi seperti ini,
Semoga berguna…. Happy Coding
^_^