Banyak yang sudah membahas update database di VB.Net dengan perintah SQL, kali ini saya membahas Update Database VB.Net dengan Ado.Net. Melakukan Pencarian, Penambahan, Mengubah dan Menghapus data pada tabel database tanpa menggunakan perintah SQL. Perintah SQL hanya digunakan untuk menghubungkan Tabel database dan Data AdapterPersiapan Tabel
Untuk operasi Cari, Tamba, Ubah dan Hapus data di tabel dengan Ado.net, tabel tersebut harus mempunyai Primary Key. Jika tidak akan menyebabkan error.
Komponen yang Dibutuhkan
Komponen yang dibutuhkan atau dideklarasikan antaralain :
- Objek Koneksi
- Data Adapter
- Data Set
- Data Tabel
- Data Row
- Command Builder
Membuat Koneksi Ke Database
Karena saya menggunakan database Microsoft Access, kode untuk koneksi data sebagai berikut :
Imports System.Data.OleDb
Public Class Lingkungan
Dim ObjKonek As New OleDbConnection
Dim SetData As New DataSet
Dim AdapterData As OleDbDataAdapter
Dim tabel As New DataTable
Dim build As OleDbCommandBuilder
Dim baris As DataRow
Private Sub Lingkungan_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ObjKonek.ConnectionString = "provider=microsoft.ACE.OLEDB.12.0;data source=silakpar.ACCDB"
buka_koneksi()
End Sub
Private Sub buka_koneksi()
If ObjKonek.State = ConnectionState.Closed Then
ObjKonek.Open()
End If
AdapterData = New OleDbDataAdapter("Select * From Lingkungan", ObjKonek)
'set command builder
build = New OleDbCommandBuilder(AdapterData)
AdapterData.MissingSchemaAction = MissingSchemaAction.AddWithKey
AdapterData.Fill(SetData)
tabel = SetData.Tables(0)
End Sub
Private Sub Tutup_koneksi()
If ObjKonek.State = ConnectionState.Open Then
ObjKonek.Close()
End If
End Sub
End Class
Databasenya silakpar.accdb, nama tabelnya Lingkungan, Penggunaan data adapter, command builder, data set, dan data tabel seperti contoh di atas.
Cari Data
Untuk mencari data format kodenya Datarow=Data Tabel.Rows.Find ( Data yg dicari )
contoh
baris = tabel.Rows.Find(txtKode.Text)
If baris Is Nothing Then 'Data tidak ditemukan
MsgBox("Kode Lingkungan Tidak Ada")
Else 'Data ditemukan
MsgBox("Kode Lingkungan Sudah Ada")
End If
Tambah Data
Penambahan data kodenya :
Private Sub Tamba_Data()
buka_koneksi()
baris = tabel.Rows.Find(txtKode.Text)
If baris Is Nothing Then
baris = tabel.NewRow 'membuat baris baru
baris("Kode") = txtKode.Text
baris("Nama") = txtNama.Text
baris("Ketua") = txtKetua.Text
tabel.Rows.Add(baris) 'menambahkan baris data ke data tabel
AdapterData.Update(SetData)'perubahan ke tabel database
Else
MsgBox("Kode Lingkungan Sudah Ada")
End If
Tutup_koneksi()
End Sub
Penjelasan kode
- Pertama mencari apakah kode yang diinput sudah ada. Jika belum ada maka penambahan data baru dilakukan
- Membuat baris baru di Data Row, dengan struktur perintah DataRow = DataTable.NewRow
- Mengisi baris baru dengan data yang input
- Menambah baris baru beserta datanya ke data tabel dengan perintah DataTabel.Rows.Add(DataRow)
- Melakukan update Data Adapter, agar perubahan pada Data Table di kirim ke Tabel Database. Struk Perintahnya DataAdapter.update(DataSet)
Rubah Data
Kode prograamnya
Private Sub Ruba_Data()
buka_koneksi()
baris = tabel.Rows.Find(txtKode.Text)
If baris Is Nothing Then
MsgBox("Kode Lingkungan Tidak Ada")
Else
baris("Nama") = txtNama.Text
baris("Ketua") = txtKetua.Text
AdapterData.Update(SetData)
End If
Tutup_koneksi()
End Sub
Penjelasan kode program :
- Mencari data yang akan di rubah
- Mengisi Data Row dengan data yang diinput
- Update Data Adapter
Hapus Data
Kode programnya :
Private Sub Hapus_Data()
buka_koneksi()
baris = tabel.Rows.Find(txtKode.Text)
If baris Is Nothing Then
MsgBox("Kode Lingkungan Tidak Ada")
Else
baris.Delete()
AdapterData.Update(SetData)
End If
Tutup_koneksi()
End Sub
Penjelasa kode program :
- Mencari data yang akan dihapus
- Menghapus Data Row
- Update Data Adapter
Penutup
Dengan teknik diatas kita tidak harus menulis kode SQL yang panjang - panjang. Sampai sekarang penulis belum ketemu solusi bagaimana untuk tabel yang tidak ada Primary Key-nya. Metode diatas tidak bisa digunakan pada Query atau Tabel di MS-Acces tipe Query

0 comments:
Post a Comment