Skip to content Skip to sidebar Skip to footer

C# - Pencarian Dinamis DatagridView Dengan Entity Framework

C# - Pencarian Dinamis DatagridView Dengan Entity Framework


Assalamu'alaikum wr.wb.
Pada kesempatan ini, saya akan membagikan tentang Program pencarian dinamis di datagridview menggunakan entity framework. Setelah sebelumnya saya memposting tentang CRUD menggunakan metode Database First, maka artikel yang ini adalah lanjutan dari postingan tersebut. Dimana program - program yang saya gunakan adalah program yang ada di artikel tersebut.

Untuk membuat program pencarian dinamis di entity framework, kita harus mengetahui terlebih dahulu program pencarian dinamis tersebut. Program yang saya maksud ada di artikel saya yang berjudul Program Pencarian Dinamis Menggunakan Bahasa Pemrograman C#. Pada artikel tersebut, saya sudah memberikan penjelasan beserta contoh program sehingga bisa dipahami dengan baik.

Program pencarian dinamis yang saya bagikan di artikel ini adalah gabungan dari kedua artikel yang sudah saya link diatas. Tujuan saya membuat artikel ini adalah karena pencarian dinamis tidak bisa langsung diterapkan di entity framework. hal ini disebabkan karena entity framework menampilkan data ke datagridview dengan tipe data list. Sementara pencarian dinamis yang saya buat adalah program untuk datatable. Tentu DataTable tidak bisa dikombinasikan dengan List. Karena kedua tipe data tersebut berasal dari library yang berbeda dan tentunya memiliki algoritma yang berbeda juga.



Baca Juga

Dalam tutorial ini, saya memberikan sedikit tambahan dari tutorial - tutorial sebelumnya yang membahas tentang C# dan entity framework. Pada tutorial sebelumnya kita tahu bahwa di entity framework pada fungsi untuk menampilkan data dikembalikan dalam list. Sementara yang kita butuhkan adalah datatable. Untuk menambahkannya, kita perlu untuk mengconvert dari list ke datatable. Hal ini bertujuan agar list yang ada di entity framework dapat kita ubah menjadi datatable agar kita bisa mengkombinasikan dengan pencarian dinamis yang ada. Berikut ini adalah coding untuk merubah list ke datatable.


1. Buatlah folder dan beri nama converting. Lalu buatlah sebuah class convertTo di dalamnya

Cara membuat class didalam folder visual studio


Untuk kerapihan project. Kita membutuhkan untuk membuat folder agar tampilan lebih tertata sehingga kita tidak perlu kerepotan untuk memperbaikinya ketika kita melakukan perubahan. Karena itu saya menambahkan Class didalam sebuah folder dengan maksud membedakan fungsi masing - masing dari class tersebut.

Selanjutnya, pada class CanvertTo tersebut kita kettikkan program dibawah ini

    class ConvertTo
    {
        public DataTable toDatatable<T>(List<T> items)
        {

            DataTable dataTable = new DataTable(typeof(T).Name);

            //Get all the properties
            PropertyInfo[] Props = typeof(T).GetProperties(BindingFlags.Public | BindingFlags.Instance);
            foreach (PropertyInfo prop in Props)
            {
                //Setting column names as Property names
                dataTable.Columns.Add(prop.Name);
            }
            foreach (T item in items)
            {
                var values = new object[Props.Length];
                for (int i = 0; i < Props.Length; i++)
                {
                    //inserting property values to datatable rows
                    values[i] = Props[i].GetValue(item, null);
                }
                dataTable.Rows.Add(values);
            }
            //put a breakpoint here and check datatable
            return dataTable;
        }
    }

Pada class tersebut, berisi sebuah fungsi yang memiliki kegunaan untuk mengubah list menjadi datatable. Di fungsi tersebut terdapat parameter list. Disitulah nanti list pada entity framework dimasukkan ke fungsi ini untuk diubah ke datatable.


2. Kembali pada frmBarang. tambahkan satu textbox di form tersebut. Dan beri nama txtCari. Textbox ini digunakan untuk mengetikkan pencarian.

Cara menambahkan textbox pencarian

Pada txtCari tersebut. Double klik saja. Nanti secara otomatis kita akan berada pada program dan terdapat fungsi TextChanged. pada fungsi tersebut, ketikkan program dibawah ini

private void txtCari_TextChanged(object sender, EventArgs e)
        {
            try
            {
                string pencarian;
                int i = 1;
                while (i <= barangDataGridView.Columns.Count)
                {
                    pencarian = barangDataGridView.Columns[i].Name;
                    (barangDataGridView.DataSource as DataTable).DefaultView.RowFilter = string.Format("Convert([" + pencarian + "], System.String) LIKE '{0}%'", txtCari.Text);
                    if (barangDataGridView.RowCount <= 1)
                        i++;
                    else
                        break;
                }
            }
            catch (Exception ex) {  }
        }

Program diatas adalah program untuk pencarian dinamis yang mana program tersebut menggunakan perulangan untuk menghitung jumlah kolom dan mengambil nama dari kolom datagrid.

Jangan lupa untuk menambahkan using dibawah ini

using Project_entity_framework.Converting;

Lalu kita inisialisasikan tepat diatas public frmBarang()

private ConvertTo cv;

Pada fungsi refreshForm(), kita tambahkan program dibawah ini

cv = new ConvertTo();
barangDataGridView.DataSource = cv.toDatatable(penjualan.barangs.ToList());


3. Setelah kita menambahkan program diatas di posisi yang tepat. Selanjutnya kita kembali ke desain frmBarang. Kosongkan datagridview dengan cara menghapus kolom dan data sourcenya. Untuk menghapusnya, terdapat tanda panah di bagian kanan datagridview. Klik saja pada data source kita ganti none, dan klik pada edit column, hapus semua kolom.

C# - Pencarian Dinamis DatagridView Dengan Entity Framework

Sampai disini, maka tutorialnya sudah selesai. Selanjutnya bisa kita run dan cobalah untuk mengetikkan sesuatu di txtCari. Maka data yang akan ditampilkan di datagrid akan sesuai dengan kata yang kita cari di txtCari.

output pencarian dinamis entity framework

Lihatlah hasil output diatas, data yang tampil adalah data yang sesuai dengan kata kunci yang kita ketikkan di txtcari. Hal ini karena kita sudah membuat program diatas untuk mencari dengan menentukan data dalam tiap kolom di datagrid. Dengan demikian, kita tidak perlu lagi untuk membuat SELECT untuk mencari. Cukup dengan program ini saja maka hasilnya lebih baik.


Penutup

Demikian tutorial ini saya sampaikan. Apabila ada kekurangan, saya mohon maaf. Silahkan tinggalkan jejak di kolom komentar. Assalamu'alaikum.wr.wb.


Post a Comment for "C# - Pencarian Dinamis DatagridView Dengan Entity Framework"