Pada modul-modul sebelumnya kita telah bekerja dengan DataSet, DataTable, dan DataView. Pada modul ini kita akan bekerja dengan DataSet yang memiliki beberapa DataTable dan masing-masing DataTable dihubungkan (Relation) berdasarkan kolom tertentu.

Contoh hasil Master dan Detail yang ditampilkan pada DataGrid1.

Contoh hasil Master dan Detail yang ditampilkan pada DataGrid1.
Mempersiapkan data source
Dalam hal ini kita akan membuka koneksi dan mempersiapkan DataSet, membuat Relation antara master DataTable dan child, serta membuat DataViewManager. Akhirnya di binding ke DataGrid. Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Oledbconn = New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0; Data source=D:\BelajarVBnet\Belajar.mdb;")
ODABarang = New OleDbDataAdapter("Select * from Barang", Oledbconn)
ODAPelanggan = New OleDbDataAdapter("Select * from Pelanggan", Oledbconn)
ODABarang.Fill(ODS, "Barang")
ODAPelanggan.Fill(ODS, "Pelanggan")
'Buat Relation antara DataTable Barang (Master) dan Pelanggan (Child)
ODS.Relations.Add("PelangganBarang", ODS.Tables("Barang").Columns("KodeBar"), ODS.Tables("Pelanggan").Columns("KodeBar"))
'Membuat DataViewManager untuk DataSet
ODVM = New DataViewManager(ODS)
'Binding DataViewManager ke DataGrid, DataTable Barang
DataGrid1.SetDataBinding(ODVM, "Barang")
End Sub
Update data ke data source
Karena DataSet terdiri dari dua tabel, maka kita perlu mengupdatenya satu-persatu melalui DataAdapter masing-masing. Private Sub Form3_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
Dim oleCB As New OleDbCommandBuilder(ODABarang)
Dim oleCP As New OleDbCommandBuilder(ODAPelanggan)
'Update masing-masing DataSet
ODABarang.Update(ODS, "Barang")
ODAPelanggan.Update(ODS, "Pelanggan")
End Sub
Program Kongkrit
Imports System.Data.OleDb
Public Class Form3
Inherits System.Windows.Forms.Form
Dim Oledbconn As OleDbConnection
Dim ODABarang As OleDbDataAdapter
Dim ODAPelanggan As OleDbDataAdapter
Dim ODS As New DataSet
Dim ODVM As DataViewManager
Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Oledbconn = New OleDbConnection("Provider=Microsoft.Jet.Oledb.4.0; Data source=D:\BelajarVBnet\Belajar.mdb;")
ODABarang = New OleDbDataAdapter("Select * from Barang", Oledbconn)
ODAPelanggan = New OleDbDataAdapter("Select * from Pelanggan", Oledbconn)
ODABarang.Fill(ODS, "Barang")
ODAPelanggan.Fill(ODS, "Pelanggan")
'Buat Relation antara DataTable Barang (Master) dan Pelanggan (Child)
ODS.Relations.Add("PelangganBarang", ODS.Tables("Barang").Columns("KodeBar"), ODS.Tables("Pelanggan").Columns("KodeBar"))
'Membuat DataViewManager untuk DataSet
ODVM = New DataViewManager(ODS)
'Binding DataViewManager ke DataGrid, DataTable Barang
DataGrid1.SetDataBinding(ODVM, "Barang")
End Sub
Private Sub Form3_Closed(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Closed
Dim oleCB As New OleDbCommandBuilder(ODABarang)
Dim oleCP As New OleDbCommandBuilder(ODAPelanggan)
'Update masing-masing DataSet
ODABarang.Update(ODS, "Barang")
ODAPelanggan.Update(ODS, "Pelanggan")
End Sub
End Class
Tidak ada komentar :
Posting Komentar