Yang namanya anak teknik informatika, ujung-ujung nya pasti bikin software untuk tugas akhir. sebagian dari mereka ada juga yang mendalami networrking. Nah, ini pengalaman saya dalam membimbing mahaiswa menyelesaikan skripsi dan tugas akhir untuk anak D3. Kebanyakan dari mereka memisahkan antara tombol simpan & tombol update.
Jadi terdapat 2 tombol. 1 tombol simpan, dan 1 tombol update. say apikir ini sangan tidak efektif. Kenapa ? karena memungkinkan terjadinya banyak kesalahan, salah satunya adalah kemungkinan keliru mengklik tombol. 1 lagi terjadinya pemborosan penggunaan object.
Hanya untuk menyimpan atau meng-update, kita bisa menggunakan hanya dengan 1 tombol, dengan cara mendeteksi data di tabel sesuai kiteria tertentu.
Contoh : Terdapat data siswa dengan NIM 12345. Maka hanya dengan 1 tombol simpan, aplikasi dapat menentukan sendiri apakah data tersebut akan di-Insert, atau di-Update dengan logika sebagai berikut :
Pada Saat tombol Simpan di Klik :
Cek tabel DataSiswa dimana NIM = 12345
Jika data siswa dengan NIM 12345 ditemukan, maka
Cukup update data siswa dengan NIM 12345 tsb.
Jika data siswa dengan NIM 12345 tidak ditemukan, maka
Simpan data baru dengan NIM 12345
Selesai.
Simple kan ?
Yuk kita masuk ke code.
Penjelasan :
Call konek()
strSQL = "SELECT * FROM tbBarang WHERE ID = '" & IDTerpilih & "'"
com = New MySql.Data.MySqlClient.MySqlCommand(strSQL, conn)
rd = com.ExecuteReader()
rd.Read()
Code ini berfungsi untuk mengecek keberadaan data terseleksi di VB.Net apakah sudah ada di dalam tabel MySQL atau belum sesuai syntax SQL yang dituliskan.
If rd.HasRows Then
Jika data ditemukan, maka :
Call konek()
strSQL = "UPDATE tbBarang SET KBR = '" & txtKBR.Text & _
"', KodeHAI = '" & txtKodeHAI.Text & _
"', JenisBarang = '" & txtJenisBarang.Text & _
"', NamaBarang = '" & txtNamaBarang.Text & _
"', IsiDus = '" & txtIsiDus.Text & _
"', Keterangan = '" & txtketerangan.Text & _
"' WHERE ID ='" & IDTerpilih & "'"
com = New MySql.Data.MySqlClient.MySqlCommand(strSQL, conn)
com.ExecuteNonQuery()
Jalankan code update. Karena kalau data dengan PrimaryKey yang sama sudah ada, sudah pasti data tersebut hanya bisa diupdate. Tidak mungkin ada 2 data dengan PrimaryKey yang sama.
Call frmBarang.TampilkanTabel()
Setelah semua data berhasil tersimpan/terupdate, maka panggil Sub TampilkanTabel untuk menanpilkan data yang barusan diupdate/disimpan tersebut ke dalam DataGridView.
Else
Bagian dari code IF diatas yang menyatakan "jika data tidak ditemukan".
Call konek()
strSQL = "INSERT INTO tbBarang VALUES ('" & _
IDTerpilih & "','" & _
txtKBR.Text & "','" & _
txtKodeHAI.Text & "','" & _
txtJenisBarang.Text & "','" & _
txtNamaBarang.Text & "','" & _
txtIsiDus.Text & "','" & _
txtketerangan.Text & "')"
com = New MySql.Data.MySqlClient.MySqlCommand(strSQL, conn)
com.ExecuteNonQuery()
Jalankan code simpan. Karena jika data tidak ditemukan, maka sudah pasti kita harus menyimpan data baru.
End If
Kasus IF selesai.
Me.Close()
Titip form peyimpanan. Kalau tidak mau otomatis tertutup, maka code ini tidak perlu dituliskan.Gimana ? mudah kan ?.. hehehe Belajar pemrograman tidak sesulit yang kalian bayangkan. Dengan hanya menggunakan 1 tombol untuk SImpan & Update seperti ini tentunya lebih simple.
Selamat mencoba.. Jika ada yang kurang jelas, silahkan tanyakan di komentar. :)
terima kasih bagus tutor nya :)
BalasHapusTrims gan, semoga membantu.. :)
Hapusmau tanya dong kak....... kalo nanganin eror saat insert data yang sama, delete data kosong n update primary key gmna yaa..??
BalasHapusInsert data yang sama : boleh2 saja, yang penting primarykey nya beda.
Hapusdelete data kosong : bisa2 aja, yang penting primarykey nya ada
update primarykey : yo kagak bisa mbak, :) primarykey itu kan fungsinya sebagai acuan.
habis klik tombol simpan malah muncul pop up
BalasHapusA first chance exception of type 'System.InvalidOperationException' occurred in MySql.Data.dll
Simple gan, mungkin koneksi SQL nya belum dibuat,
Hapuscek cara bikin koneksi MySQL ke VB.Net disini gan : http://teknosian.blogspot.com/2014/05/membuat-koneksi-vbnet-2013-dengan-mysql.html
Terima kasih Andrio Prijaya
BalasHapusTutorialnya lengkap bagus ada penjelasanya.
semoga bermanfaat untuk yang lain juga..
tengkyu gan, senang bisa membantu, :)
Hapusbanyakin lagi tutornya gan (y)
BalasHapusSiapp gan,, :)
Hapusmau tanya nih gan knp di waktu kli simpan pertama kali oke tapi ke dua kalinya eror
BalasHapusKeterangan error nya apa gan?
HapusNice gan, sangat membantu
BalasHapusKak kasih tau donk, coding SIMPAN, HAPUS, EDIT SAMA TAMBAH pada vb 2010 databasenya PHPMYADMIN, yang jelas kak, soalnyaa aku baru belajar, pengen tahu, kiirim ke email aku ya kak terima kasih rizkaandriana808@gmail.com .. :)
BalasHapusDitunggu ya.. Tutorial selanjutnya, :)
HapusBang, arti strSQR itu apa? Aku errornya disitu.
BalasHapusKetikkan : "Dim strsql as String" tepat di atas baris yg error
HapusGan, untuk keterangan MySqlException was unhandled itu kenapa ya?
BalasHapuswaktu sy simpan dia muncul keterangan itu. mohon penjelasan nya.
Gan, dibagian rd = com.ExecuteReader ada errHandle muncul InvalidOperationException was unhandled, mohon bantu pencerahan ga..
BalasHapusKalo search help nya diarahkan ke netframework yang bermasalah. Terima kasih
Coba ketik call konek() di baris paling atas gan.
HapusCoba ketik call konek() di baris paling atas gan.
HapusThank gan.. Dah bisa
HapusTeruskan update codingan yang lain gan.. biar bisa buat pencerahan bagi yang newbie ky saya.. Trims gan.. Sukses
Hapusgan, numpang tanya untuk update data dengan 2 atau lebih filter codingnya seperti apa ya ga..
BalasHapusmis :
Public Sub UpdateLogin()
Call konek()
terima kasih sebelumnya gan..
strSQL = "UPDATE tbluserlog SET TimeOut=" & Format(Now, "HH:mm:ss") & " WHERE IDLogin=" & Label3.Text & " AND TimeIn=" & Label2.Text & ""
com = New MySql.Data.MySqlClient.MySqlCommand(strSQL, conn)
com.ExecuteNonQuery()
End Sub
gan, numpang tanya untuk update data dengan multiple kriteria dalam satu field codingnya seperti apa ya ga..
BalasHapusmis :
Public Sub UpdateLogin()
Call konek()
strSQL = "UPDATE tbluserlog SET TimeOut=" & Format(Now, "HH:mm:ss") & " WHERE IDLogin=" & Label3.Text & " AND TimeIn=" & Label2.Text & ""
com = New MySql.Data.MySqlClient.MySqlCommand(strSQL, conn)
com.ExecuteNonQuery()
End Sub
coding ini selalu gagal.
tolong dibantu gan, terima kasih sebelumnya gan..