DataView, tabel data, dan DataGrid merupakan tiga objek yang terkait erat dengan objek DataSet. DataView digunakan untuk memfilter, mengurut, dan mencari baris record yang tersimpan pada objek DataSet (objek tabel data). Tabel data (Data Tabel) merupakan bagian dari objek DataSet dimana baris data yang diperoleh dari sumber data disimpan dan selanjutnya direferensikan melalui objek DataTable (objek TabelData), sedangkan DataGrid berfungsi menampilkan baris data, baik itu berasal dari objek tabel data maupun melalui objek DataView.
1. Data View
Pada bab sebelumnya, kita telah melihat struktur dari objek DataSet yang dapat menampung satu atau lebih tabel data. Kemampuan ini memungkinkan objek DataSet bersifat seolah-olah sebagai suatu database saja sehingga kode program dapat melakukan filtrasi data, membuat hubungan antartabel, dan lain- lain. Proses filtrasi ini diakomodir oleh objek DataView. Objek DataVie dapat dimanfaatkan untuk memfilter, mengurutkan, mencari, maupun mengatur kolom kunci dari objek tabel data. Kemampuan ini berguna saat kita berusaha untuk. Mengurangi aktifitas/kesibukan pada SQL server dengan mengambil suatu porsi data yang cukup besar dan menyimpannya pada objek DataSet. Selanjutnya proses pencarian dilakukan pada objek DataSet, jadi tidak melibatkan SQL Server lagi. Bila tidak ada kebutuhan untuk mengurangi kesibukan pada SQL Server, Anda tidak harus menggunakan objek DataView. Lakukan saja proses sebagaimana biasanya, yakni setiap proses pencarian langsung dilakukan pada database/sumber data. Oleh karena iti pemanfaatan objek DataView adalah untuk mengurangi aktifitas pada SQL server dalam bentuk pencarian record, pemanfaaatan baris data melalui objek DataView bersifat read only. Penulis tidak menganjurkan Anda untuk melibatkan penggunaan objek DataView pada proses penambahan record maupun penghapusan recor bila mungkin, karena akan menyebabkan data yang ada pada objek DataView berubah dan hal ini cukup memusingkan saat penulisan program. Tidak ada hal yang istimewa pada objek ini. Pernyataan baris perintahnya cukup jelas, logis, dan hasil yang ditampilkan cukup mudah dipahami.
2. Data Table
DataTable (tabel data) adalah komponen dimana baris data yang diperoleh dari sumber data ditampung sebelum diproses lebih lanjut. Baris data ini kemudian direferensi melalui objek DataTable. Perubahan yang terjadi pada DataTable ditangani library .NET Framework, jadi SQL Server sudah tidak terlibat lagi. Kita telah mengetahui bahwa ADO.NET bekerja dalam bentuk hubungan terputus sehingga perubahan yang terjadi pada table data tidak akan mempengaruhi sumber data sebelum program menjalankan proses modifikasi, baik melalui objek Command maupun objek DataAdapter sehingga program dapat memperlakukan DataTable sebaga file sementara untuk berbagai keperluan. Setelah objek DataTable dideklarasikan, objek tersebut dikaitkan ke komponen tabel objek DataSet, selanjutnya digunakan nama variabel objek data tabel untuk melakukan aktifitas yang terkait dengan objek tersebut, misalnya memperoleh baris data, mengambil nilai dari kolom tertentu, atau memindahkan posisi record/pointer ke baris tertentu. Perintah BindingContext diperlukan ketika akan dilakukan perubahan yang mereferensi objek data tabel, baik itu untuk memindahkan posisi record, memperoleh baris data, maupun menghapus baris. Khusus untuk menambah baris baru atau memperbarui record, program harus menjalankan perintah objDataTable.AcceptChanges() sebelum melakukan perubahan pada DataTabel. Bila program melakukan penghapusan suatu baris record, posisi/pointer ke record tersebut harus dipindahkan karena keberadaan pointer tersebut telah terhapus (ditiadakan). Bila posisi/pointer tidak dipindahkan, program akan crash. Hal yang sama (crash) juga akan terjadi bila program mencoba mereferensi ke pointer (posisi record) yang telah dihapus. Properti row yang dimiliki oleh DataTable bisa jadi merupakan properti yang paling sering digunakan. Melalui properti rows.items, dapat diperoleh data dari masing-masing kolom. Biasanya property tersebut digunakan untuk mengatur nilai ke baris tersebut. Di samping itu, properti rows.count sangat berguna untuk mengetahui jumlah baris yang dimiliki objek DataTable. Dengan menghitung jumlah baris yang ada, program dapat mengetahui apakah suatu record telah exist/ada pada database atau belum. Proses update sumber data (database) tidak dicontohkan di sini karena Anda dapat melihat variasi update database pada contoh Aplikasi Program Penjualan Barang. Silahkan memperhatikan listing program dan bermain-main (berimaginasi) dengan record yang akan ditampilkan pada layar ketika Anda menekan/mengklik tombol navigasi atau menambah sembarang baris baru. Jangan bermain-main dulu dengan proses penghapusan karena ada hal menarik yang terjadi di sana.
3. Datagridview
Bila dilihat dari tampilan DataGrid, sekilas Anda akan menduga kontrol DataGrid pada VB.NET memiliki banyak kesamaan dengan kontrol DataGrid pada VB6. Akan tetapi dari segi pemrograman tidaklah demikian. Ada dua hal yang sangat berbeda Ada pun titik permasalahan yang dihadapi adalah kita sudah memiliki aplikasi program VB6 yang memanfaatkan Property Pages maupun Event seperti tersebut di atas sehingga mau tidak mau kita harus melakukan modifikasi pada program VB6 agar dapat dijalankan pada VB.NET. tersebut cukup mengonsumsi waktu. Akan tetapi kini Anda tidak perlu khawatir lagi, penulis telah mendapatkannya dan Anda dapat menggunakan contoh yang diberikan dan melakukan perubahan sesuai dengan yang diinginkan. Anda dapat mengatur kolom pada tampilan datagrid melalui objek DataTable, sayangnya tidak banyak pilihan/fasilitas yang disediakan. Di samping itu, set-up melalui objek DataTable akan berlaku untuk semua tampilan datagrid yang menggunakan objek data tabel tersebut sebagai sumber datanya. Cara lain adalah dengan menggunakan class DataGridTableStyle. Untuk itu kontrol datagrid harus di-binding/dikaitkan ke objek DataSet dengan nama tabel yang akan digunakan. Selanjutnya deklarasikan sebuah DataGridTableStyle baru, dilanjutkan dengan mengatur DataGridTableStyle.MappingName ke nama tabel objek DataSet dan akhiri proses ini dengan menambahkan DataGridTableStyle ke dalam koleksi DataGrid.TabelStyles serta perjelas penampilan data pada kontrol datagrid.
Tidak ada komentar:
Posting Komentar