February 17, 2009

Menambahkan Control DrodpDownList Pada DataGrid View


Artikel ini masih berkaitan dengan DataGridView, kenapa banyak sekali artikel/tips penulis seputar DatGridView??? Karena Component ini sangat sering digunakan oleh para developer, jadi harus terus di gali fungsi-fungsi nya. Langsung masuk aja ke pembahasan, sesuai dengan judul nya menambahkan control DropDownList pada DataGridView. Untuk .Net Framework 2.0 keatas, cara ini tidak sesulit atau serumit pada versi di bawah nya..
Di asumsikan kita sudah memiliki Database dengan nama Table "T_Titles", dan salah satu field nya adalah "Authors". 
Note : Untuk cara koneksi ke Database di asumsikan sudah bisa, jika belum silahkan liat artikel penulis yang pertama.
Berikut sintaks nya.. (ketik sintaks ini pada  Private Sub F_DataGrid_Load)

       'Start Menampilkan data pada Datagrid View
        Dim cmd As OleDbCommand = New OleDbCommand("Select * from T_Titles",           myconnection.open)
        cmd.CommandType = CommandType.Text
        Dim adapter As OleDbDataAdapter = New OleDbDataAdapter(cmd)
        Dim datatbl As DataTable = New DataTable
        Dim ds As DataSet = New DataSet()
        ' Mengambil info column (Read-only).
        adapter.FillSchema(ds, SchemaType.Mapped, "Titles")
        ' Isi table
        adapter.Fill(ds, "Titles")
        datatbl = ds.Tables("Titles")
        myconnection.close()
        DataGridView1.DataSource = datatbl
        'Finish Menampilkan data pada Datagrid View

        'Menghapus auto generate Authors Colomn
        DataGridView1.Columns.Remove("Authors")
       'Membuat List columns untuk Authors field
        Dim listCol As DataGridViewComboBoxColumn = New DataGridViewComboBoxColumn()
        'Posisi column nomor 2
        listCol.DisplayIndex = 1
        'Nama Header= "Authors"
        listCol.HeaderText = "Authors"

        'Masukkan nama field pada table yang akan di buat listcolom
        listCol.DataPropertyName = "Authors"
       'Mengisi list dari T_Titles table
        listCol.DataSource = ds.Tables("Titles")
        listCol.DisplayMember = "Authors"
        listCol.ValueMember = "Authors"
       'Tambahkan column
        DataGridView1.Columns.Add(listCol)

Selamat mencoba...
Wassalam..

16 comments:

Anonymous said...

Mas junindar..saya sudah membaca artikel mas yang pertama yaitu pembuatan aplikasi vb.net dengan access...saya mw tanyakan fungsi dari createcommmand itu apa ya?Kira2 ada bedanya apabila kita tidak menggunakan fungsi tersebut...misalkan langsung menuliskan...
objcommand.commandtext=???????

Anonymous said...

melanjutkan pertanyaan saya yang pertama mengenai createcommand,yang kedua ini..fungsi dari sub DisplayData pada proses penyimpanan itu apa ya...memang dijelaskan disitu untuk menyimpan data pada datatable..tetapi pada code pertama dari sub itu ada code yang menerangkan objdatatable.clear..yang berarti membersihkan datatable...Dan saya masih bingung untuk fungsi dari sub Display data...bagaimana kalau saya tidak menyertakannya dalam proses penyimpanan???

Junindar, MVP said...

@Createcommand : coba hilangkan code itu, pasti error akan muncul.. itu merupakan membuat koneksi object OleDBCommand dengan Database.. atau bisa di ganti code nya dengan ini :objCommand.Connection = MyConnection.open
..
@Displaydata : ga masalah di hilangkan..fungsi itu untuk mengupdate data ke dalan datatable..berfungsi jika sehabis melakukan insert data dan langsung di tampilkan data nya pada Datagrid

Thanks

THORIQ said...

Salam kenal Mas.Mohon dengan sangat nich bantuannya. Saya buat WebApplikasi ASP.Net menggunakan VS2005 dan menggunakan database MySQL.Pertanyaan saya:

1. Saya buat Report menggunakan crystal report dan design nya sudah jadi ketika saya memasukan Field dari dataset kedalam Crstal Report ketika di ReView report nya kok datanya tidak cocok dengan data pada database nya. contohnya: Pada database colom nama: Thoriq, ketika tampil di review report tidak nama Thoriq tapi nama-nama warna seperti red, blue, orange, aqua, dll itu selalu ganti ketika di refres pada main review. Itu kenapa ya? apa ada cara khusus buat cristal report.

2. Ketika saya buat crytal report Viewer di Webform Jika saya tidak memasukan field dari dataset, ketika di Run tidak masalah dan jalan dgn normal dan bisa ditampilkan pada web, tetapi jika saya memasukan field dari dataset maka selalu muncul "The report you requested requires further information" suruh Login dgn mengisi : Servername, DatbaseName, UserName, dan Password. tetapi Servername & DatbaseName tdk bisa diubah. trus saya masukan user dan password sesuai dengan user dan password pada database, tetapi tetap tidak bisa menampilkan laporan diweb.

Sebelumnya mohon maaf mungkin pertanyaan saya terlalu panjang, Mohon bantuan nya. Terimkasih banyak sebelumnya. Saya tunggu Jawaban dan bantuaanya.
ADD YM saya: thoo_reeq

Junindar, MVP said...

coba baca artikel saya yang ke dua..

Ponco Ridwan said...

saya sudah mencoba tapi muncul pesan seperti ini

System.ArgumentException: DataGridViewComboBoxCell value is not valid.

saya pakai vb 2005

Terima kasih

Junindar, MVP said...

coba cek lagi, field untuk menampilkan data pada combo box nya..

dimasiano said...

pak junindar.. untuk source code artikel ini apa bisa di shared, thx

dizi said...

oh... yang aku cari ada disini.. thk

5SIA1 said...

mas, kalo membuat ke crystal report gimana ya. (data yg ada di datagrid dikluarkan ke CR).
terimakash sebelumnya..
:)

5SIA1 said...

mas, kalo membuat ke crystal report gimana ya. (data yg ada di datagrid dikluarkan ke CR).
terimakash sebelumnya..
:)

Teodoric said...

Mas Jun, saya butuh bantuannya, saya sedang mencoba untuk membuat sebuah program database dan saya memiliki permasalahan ketika saya hendak melakukan filter data yang ada di datagrid berdasarkan filter by date range. ini adalah codenya :
Select * from tbdata Name='" & Trim(txtNama.text) & "' and DateCheck between #" & dtStart.value & "# and #" & dtEnd.value & "' order by tbData.DateCheck asc "
dengan code tersebut saya sudah berhasil memfilter berdasarkan nama dan juga date range akan tetapi ketika saya masukkan tgl range 1 - 9 di bulan Oct s/d Dec fungsi filter tsb tidak berfungsi dengan baik. kira2 hal apa yg menyebabkan error tsb bisa terjadi?? saya menggunakan database Access 2010, klo bisa saya minta contoh untuk masalah saya diatas. terima kasih banyak

Junindar, MVP said...

biasa nya kalau seperti itu format date time nya mas..

Junindar, MVP said...

kalau seperti itu biasanya masalah dengan format DateTime nya..

Santo said...

Mas Jun mau tanya nih,apa perbedaan datagrid sama datagridview?kayaknya fitur datagrid ngga ada di visual studio 2010..mohon pencerahannya..:)
makasih

Junindar, MVP said...

@santo :untuk Vb 2055 keatas datagrid telah di ganti menjadi datagridview.. secara garis besar hampir sama, tapi tentu lebih powerfull datagridview..