Minggu, 21 Juli 2013

Membuat master dan child VB.NET

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.

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
1

Tidak ada komentar :

Posting Komentar