Bismillahirahmanirohim,
Dalam kesempatan ini, saya akan sedikit membahas tentang keluarga .Net lainnya yaitu Visual Basic.Net, yaitu cara untuk
membinding data dari form 1 ke form lainnya tetapi melalui DataGridView, biasanya DataGridView berisi replika salah satu tabel
dalam database yang kita binding ke form, akan tetapi kekurangannya adalah semakin banyak data akan semakin
banyak *** memory yang dibutuhkan.
membinding data dari form 1 ke form lainnya tetapi melalui DataGridView, biasanya DataGridView berisi replika salah satu tabel
dalam database yang kita binding ke form, akan tetapi kekurangannya adalah semakin banyak data akan semakin
banyak *** memory yang dibutuhkan.
berikut gambar hasil dari aplikasinya :D caranya dengan double click pada record yang ada padaDataGridView
Berikut langkah-langkahnya :
1. Buat New Project pada Visual Studio 2010
Name dan Solution name nya bebas, misalkan saya tulis "CRUD" lalu klik OK
2. Buat databasenya, berikut langkah-langkahnya
connect dulu, saya menggunakan Microsoft SQL Server 2008 R2 untuk databasenya
databasenya saya beri nama "mhs" dengan tabel yang beri nama "t_mhs" yang berisi 4 field, seperti dibawah ini
Jangan lupa disave :D
3. buat koneksi databasenya, saya menggunakan konsep ADO.NET, tidak menggunakan modul dalam koneksi databasenya, karena cara ini adalah cara tercepat,
berikut caranya,klik kanan pada project kita,lalu pilih properties
berikut caranya,klik kanan pada project kita,lalu pilih properties
lalu pilih tab settings, beri Name, beri nama bebas misalkan saya memberi nama "RegiePahlewi", typenya dibuat menjadi
Connection string, scopenya menjadi Application setelah itu valuenya kita browse
browse
Tulis Server namenya, lalu pilih databasenya
kita dapat tes koneksi databasenya
Oke koneksinya sukses, lalu pilih button OK
4. Sekarang buat formnya, seperti ini, (Form 1)
berikut adalah source codenya
Imports System.Data.SqlClient
Imports System.Data
Imports System.Data
'karena kita tidak menggunakan module dalam koneksi ke database, kita harus membuat global variabel nya, dari koneksi, command, dataset, dan
DataAdapter
Public Class Form1
Private conn As SqlConnection
Private cmd As SqlCommand
Private cmp As SqlCommand
Private da As SqlDataAdapter
Private ds As DataSet
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'MhsDataSet.t_mhs' table. You can move, or remove it, as needed.
Me.T_mhsTableAdapter.Fill(Me.MhsDataSet.t_mhs)
Dim regie = My.Settings.RegiePahlewi 'memanggil settings yg kita buat sebelumnya
conn = New SqlConnection(regie) 'ini adalah koneksi ke database yang sebelumnya kita buat di properties tadi
Me.Button1.Enabled = False 'button satu ini adalah button simpan, ini kebiasaan saya, tidak pernah mengganti nama button, saya buat enable dulu :D
Me.DataGridView1.Select()
End Sub
Private Sub TextBox2_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged
Dim a As Integer 'membuat variabel lokal
a = Val(TextBox2.Text)
If a >= 1 Then
Me.Button1.Enabled = True 'membuat enable button simpan
End If
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim query = "INSERT INTO t_mhs (npm, nama,jurusan,angkatan)values(@npm, @nama, @jurusan, @angkatan ) " 'query
cmd = New SqlCommand(query, conn)
Try
conn.Open()
cmd.Parameters.AddWithValue("@nama", TextBox1.Text)
cmd.Parameters.AddWithValue("@npm", TextBox2.Text)
cmd.Parameters.AddWithValue("@jurusan", TextBox3.Text)
cmd.Parameters.AddWithValue("@angkatan", TextBox4.Text)
cmd.ExecuteNonQuery()
MessageBox.Show("Data berhasil ditambah !")
Catch ex As Exception
MessageBox.Show("Error :" & ex.Message)
Finally
cmd.Dispose()
conn.Close()
End Try
Me.TextBox1.Clear() 'Nama
Me.TextBox2.Clear() 'NPM
Me.TextBox3.Clear() 'Jurusan
Me.TextBox4.Clear() 'Angkatan
Me.DataGridView1.Refresh()
Form2.Close()
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Me.TextBox1.Clear()
Me.TextBox2.Clear()
Me.TextBox3.Clear()
Me.TextBox4.Clear()
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
Private Sub DataGridView1_CellContentDoubleClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentDoubleClick
'Saya membuat event, saya record yang ada pada datagridview double klik, lalu akan kluar form edit
DataAdapter
Public Class Form1
Private conn As SqlConnection
Private cmd As SqlCommand
Private cmp As SqlCommand
Private da As SqlDataAdapter
Private ds As DataSet
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
'TODO: This line of code loads data into the 'MhsDataSet.t_mhs' table. You can move, or remove it, as needed.
Me.T_mhsTableAdapter.Fill(Me.MhsDataSet.t_mhs)
Dim regie = My.Settings.RegiePahlewi 'memanggil settings yg kita buat sebelumnya
conn = New SqlConnection(regie) 'ini adalah koneksi ke database yang sebelumnya kita buat di properties tadi
Me.Button1.Enabled = False 'button satu ini adalah button simpan, ini kebiasaan saya, tidak pernah mengganti nama button, saya buat enable dulu :D
Me.DataGridView1.Select()
End Sub
Private Sub TextBox2_TextChanged(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged
Dim a As Integer 'membuat variabel lokal
a = Val(TextBox2.Text)
If a >= 1 Then
Me.Button1.Enabled = True 'membuat enable button simpan
End If
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim query = "INSERT INTO t_mhs (npm, nama,jurusan,angkatan)values(@npm, @nama, @jurusan, @angkatan ) " 'query
cmd = New SqlCommand(query, conn)
Try
conn.Open()
cmd.Parameters.AddWithValue("@nama", TextBox1.Text)
cmd.Parameters.AddWithValue("@npm", TextBox2.Text)
cmd.Parameters.AddWithValue("@jurusan", TextBox3.Text)
cmd.Parameters.AddWithValue("@angkatan", TextBox4.Text)
cmd.ExecuteNonQuery()
MessageBox.Show("Data berhasil ditambah !")
Catch ex As Exception
MessageBox.Show("Error :" & ex.Message)
Finally
cmd.Dispose()
conn.Close()
End Try
Me.TextBox1.Clear() 'Nama
Me.TextBox2.Clear() 'NPM
Me.TextBox3.Clear() 'Jurusan
Me.TextBox4.Clear() 'Angkatan
Me.DataGridView1.Refresh()
Form2.Close()
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Me.TextBox1.Clear()
Me.TextBox2.Clear()
Me.TextBox3.Clear()
Me.TextBox4.Clear()
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
Private Sub DataGridView1_CellContentDoubleClick(sender As Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellContentDoubleClick
'Saya membuat event, saya record yang ada pada datagridview double klik, lalu akan kluar form edit
If MessageBox.Show("Apakah Anda ingin mengubah data ?", "Konfirmasi",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) = Windows.Forms.DialogResult.No Then
Exit Sub
End If
Form2.Show()
Form2.TextBox2.Text = DataGridView1.Rows(DataGridView1.CurrentRow.Index).Cells(0).Value.ToString()
End Sub
End Class
5. Form 2 untuk form edit, buat seperti form di atas, akan tetapi datagridviewnya jangan didrag ke formnya (lupa gak print screen) :D
Imports System.Data.SqlClient
Imports System.Data
Public Class Form2
Private conn As SqlConnection
Private cmd As SqlCommand
Private cmp As SqlCommand
Private da As SqlDataAdapter
Private ds As DataSet
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim regie = My.Settings.RegiePahlewi 'memanggil settings yg kita buat sebelumnya
conn = New SqlConnection(regie) 'ini adalah koneksi ke database yang sebelumnya kita buat di properties tadi
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim query = "update t_mhs set nama=@nama, jurusan=@jurusan, angkatan=@angkatan "
cmd = New SqlCommand(query, conn)
Try
conn.Open()
cmd.Parameters.AddWithValue("@nama", TextBox1.Text)
cmd.Parameters.AddWithValue("@jurusan", TextBox3.Text)
cmd.Parameters.AddWithValue("@angkatan", TextBox4.Text)
cmd.ExecuteNonQuery()
MessageBox.Show("Data dengan NPM " & TextBox2.Text & " Berhasil diupdate")
Catch ex As Exception
MessageBox.Show("Error :" & ex.Message)
Finally
cmd.Dispose()
conn.Close()
End Try
Me.Close()
End Sub
Private Sub TextBox2_TextChanged_1(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged
Try
If Not TextBox2.Text = "" Then
TextBox1.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
da = New SqlClient.SqlDataAdapter("SELECT * FROM t_mhs WHERE npm ='" & TextBox2.Text & "'", conn)
Dim dttampil As New DataTable
dttampil.Clear()
da.Fill(dttampil)
TextBox1.DataBindings.Add("Text", dttampil, "nama")
TextBox2.DataBindings.Add("Text", dttampil, "npm")
TextBox3.DataBindings.Add("Text", dttampil, "jurusan")
TextBox4.DataBindings.Add("Text", dttampil, "angkatan")
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
End Try
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Me.TextBox1.Clear()
Me.TextBox2.Clear()
Me.TextBox3.Clear()
Me.TextBox4.Clear()
Me.Close()
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
End Class
Imports System.Data
Public Class Form2
Private conn As SqlConnection
Private cmd As SqlCommand
Private cmp As SqlCommand
Private da As SqlDataAdapter
Private ds As DataSet
Private Sub Form2_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Dim regie = My.Settings.RegiePahlewi 'memanggil settings yg kita buat sebelumnya
conn = New SqlConnection(regie) 'ini adalah koneksi ke database yang sebelumnya kita buat di properties tadi
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
Dim query = "update t_mhs set nama=@nama, jurusan=@jurusan, angkatan=@angkatan "
cmd = New SqlCommand(query, conn)
Try
conn.Open()
cmd.Parameters.AddWithValue("@nama", TextBox1.Text)
cmd.Parameters.AddWithValue("@jurusan", TextBox3.Text)
cmd.Parameters.AddWithValue("@angkatan", TextBox4.Text)
cmd.ExecuteNonQuery()
MessageBox.Show("Data dengan NPM " & TextBox2.Text & " Berhasil diupdate")
Catch ex As Exception
MessageBox.Show("Error :" & ex.Message)
Finally
cmd.Dispose()
conn.Close()
End Try
Me.Close()
End Sub
Private Sub TextBox2_TextChanged_1(sender As System.Object, e As System.EventArgs) Handles TextBox2.TextChanged
Try
If Not TextBox2.Text = "" Then
TextBox1.Text = ""
TextBox3.Text = ""
TextBox4.Text = ""
da = New SqlClient.SqlDataAdapter("SELECT * FROM t_mhs WHERE npm ='" & TextBox2.Text & "'", conn)
Dim dttampil As New DataTable
dttampil.Clear()
da.Fill(dttampil)
TextBox1.DataBindings.Add("Text", dttampil, "nama")
TextBox2.DataBindings.Add("Text", dttampil, "npm")
TextBox3.DataBindings.Add("Text", dttampil, "jurusan")
TextBox4.DataBindings.Add("Text", dttampil, "angkatan")
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Information, "Perhatian")
End Try
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Me.TextBox1.Clear()
Me.TextBox2.Clear()
Me.TextBox3.Clear()
Me.TextBox4.Clear()
Me.Close()
End Sub
Private Sub Button3_Click(sender As System.Object, e As System.EventArgs) Handles Button3.Click
Me.Close()
End Sub
End Class
6. Debug program yang telah kita buat, alhasil :D
Proses penambahan data
Proses double click pada DataGridView
Proses Edit data pada form edit (form 2)
Sukses Update data
NB : - Script yang saya lampirkan diatas tidak termasuk validasi proses input,
- Apabila ada script yang tidak efektif, dapat teman-teman ubah sesuai kebutuhan
Terimakasih atas perhatiannya, sekali lagi ! Cheers, it's time to your shine !
sumber : http://students.netindonesia.net
Tidak ada komentar:
Posting Komentar