Modifikasi melalui kontrol DataGridView merupakan cara yang praktis dan sederhana. Disini anda tidak perlu melibakan banyak kontrol cukup menggunakan kontrol dDataGridView dan Button (Jika diperlukan). Seperti halnya Anda melakukan modifikasi melalui textbox kontrol DataGridView memungkinkan untuk diguanakan dalam menambah,mengubah,menghapus data. Oleh karena kita mengandalkan DataGridView untuk modifikasi data table, pastikan bahwa property ReadOnly bernilai false. Ketika property ini bernilai true maka DataGridView hanya boleh dibaca saja, akibatnya kode anda juga tidak akan bekerja. Untuk lebih jelasnya, buat project baru dan tambahkan beberapa kontrol seperti bagan berikut :
Label1 | Text = Modifikasi Data Lewat DataGrid |
DataGridView | Name = DataGridView1 |
Buuton1 | Name =BtnSimpan |
Text = &Simpan |
Lalu lengkapi program anda dengan kode dibawah ini :
1: Imports MySql.Data.MySqlClient
2: Public Class Form1
3: Inherits System.Windows.Forms.Form
4: Dim conn As MySqlConnection
5: Dim adapter As MySqlDataAdapter
6: Dim ds As New DataSet
7:
8: Private Sub Form1_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
9: adapter.Dispose()
10: conn.Dispose()
11: End Sub
12:
13: Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
14: Dim Constr As String
15: Constr = "server=localhost;" & "user=root;" & "password='';" & "database=latihan1;"
16: Dim sqlstr As String = "select * from anggota"
17: adapter = New MySqlDataAdapter
18: Try
19: conn = New MySqlConnection(Constr)
20: conn.Open()
21: adapter.SelectCommand = New MySqlCommand(sqlstr, conn)
22: Dim cb As MySqlCommandBuilder
23: cb = New MySqlCommandBuilder(adapter)
24: adapter.Fill(ds, "anggota")
25: DataGridView1.DataSource = ds
26: DataGridView1.DataMember = "anggota"
27: Catch ex As Exception
28: MessageBox.Show(ex.Message)
29: End Try
30: End Sub
31:
32: Private Sub BtnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnSimpan.Click
33: 'Penambahan Data
34: Dim dschange As DataSet = New DataSet
35: If (ds.HasChanges(DataRowState.Added)) Then
36: 'Menambahkan Record Yang Ditambahkan
37: dschange = ds.GetChanges(DataRowState.Added)
38: Dim rowchange As Integer
39: rowchange = adapter.Update(dschange, "anggota")
40: If (rowchange > 0) Then
41: MessageBox.Show(rowchange.ToString() & " Record Berhasil Dimasukan")
42: End If
43: End If
44: 'Pengubahan Data
45: If (ds.HasChanges(DataRowState.Modified)) Then
46: dschange = ds.GetChanges(DataRowState.Modified)
47: Dim Rowchange As Integer
48: Rowchange = adapter.Update(dschange, "anggota")
49: If (Rowchange > 0) Then
50: MessageBox.Show(Rowchange.ToString() & " Record Berhasil diubah")
51: End If
52: End If
53: 'Penghapusan Data
54: If (ds.HasChanges(DataRowState.Deleted)) Then
55: dschange = ds.GetChanges(DataRowState.Deleted)
56: Dim Rowchange As Integer
57: Rowchange = adapter.Update(dschange, "anggota")
58: If (Rowchange > 0) Then
59: MessageBox.Show(Rowchange.ToString() & " Record Berhasil dihapus")
60: End If
61: End If
62: 'Menerapkan perubahan
63: ds.AcceptChanges()
64: 'Refress Datagrid
65: DataGridView1.Refresh()
66: End Sub
67: End Class
Agar proses modifikasi dapat dilakukan dengan praktris, kita memerlukan objek Mysql Command Builder. Fungsinya untuk mrndapatkan data yang singkron antara dataset dengan data di dalam data aslinya. Pada prinsipnya operasi penambahan , operasi pengubahan ,operasi penghapusan hampir sama ,hanya status operasi yang membedakan. Perhatikan potongan kode penambahan berikut :
1: Dim dschange As DataSet = New DataSet
2: If (ds.HasChanges(DataRowState.Added)) Then
3: 'Menambahkan Record Yang Ditambahkan
4: dschange = ds.GetChanges(DataRowState.Added)
5: Dim rowchange As Integer
6: rowchange = adapter.Update(dschange, "anggota")
7: If (rowchange > 0) Then
8: MessageBox.Show(rowchange.ToString() & " Record Berhasil Dimasukan")
9: End If
10: End If
Setelah objek dataset menampung table seperti yang ditampilkan pada DataGridView, kita menciptakan objek dataset baru. Tujuannya untuk menampung record yang ditambah, diubah, serta dihapus dari dataset pertama. Sebagai contoh, Anda melakukan penambahan data, program akan memeriksa penambahan melalui method HasChange dengan parameter status, yaitu DataRowState.Added. Langkah berikutnya mengisikan record baru ke dalam objek dataset kedua, dan terakhir menerapkan perubahan ke tabel melalui method Update. Begitu *** halnya dengan pengubahan dan penghapusan, Anda cukup memeriksa status dari modifikasi data. Setelah status anda dapatkan, langkah selanjutnya tidak berbeda.
Source codenya bisa di download disini
Wah tutorialnya bagus bgt. Mas boleh tanya dikit nga mengenai datagridview. Misalnya saya mau dalam satu cell datagridview ada button.
---------------------------
Nama Alamat
*
---------------------------
Nah yang * maksudnya button. Jadi waktu saya mau cari nama klien di datagridview pada saat editing maka saya tinggal tekan button tersebut dan cari nama klien yang sesuai....Kira2 gimana mas? tks a lot bantuannya...