Tuesday 4 March 2014

Error Handling pada VB Net dengan Database Mysql

Semester lalu saya dapat tugas dari dosen mata kuliah pemograman visual untuk membuat program error handling.
Pengertiian error handling menurut saya adalah sebagai berikut:
Error handling adalah sebuah kondisi ketika program mengalami error ketika dijalankan. Misalkan kita mau menghapus sebuah data, tapi data tersebut tidak ada dalam database. Maka kita akan menampilkan sebuah pesan box bahwa data tidak ada dalam database.
Kira-kira begitulah pengertian error handling menurut saya. Jika kurang puas, silahkan browsing di google.hehe.

Baiklah kita lanjut pada pembahasan.
Dosen saya memberikan saya 3 soal error handling.
  1. Error handling pada program ketika insert data ganda (primary key),
  2. Delete data yang kosong atau tidak ada, dan
  3. Update atau merubah data yang bertipe primary key menggunakan 

Pertama kita buat databasenya dahulu.



Penambahan Data
Ketika membuka program, tombol Edit ID, Tambah, dan Hapus tidak berfungsi. Hanya tombol Simpan yang berfungsi. 
Masukkan ID (bisa dikosongi), Jenis, dan Jumlah. Kemudian Klik tombol simpan. 








Soal Nomor 1

Jika penambahan data dengan id yang sama maka akan terjadi error, seperti kasus berikut. Akan ditambahkan data dengan id ‘3’, padahal id tersebut telah digunakan.




Menghapus Data

Untuk menghapus atau mengedit data, harus klik data pada tabel. Setelah data yang diinginkan di klik, maka data akan tampil pada textbox.  

Tombol Edit ID, Tambah, dan Hapus akan berfungsi, serta tombol Simpan berubah menjadi Update. 
Textbox id menjadi tidak berfungsi, karena id tersebut yang akan dijadikan kunci untuk melakukan proses hapus dan update atau edit data. 











Soal Nomor 2

Misal kita melakukan edit pada id yang berada pada tabel, kemudian kita akan melakukan perintah delete. Maka akan muncul pesan bahwa tidak ada data yang terhapus.






Mengedit/Update Data

Klik data pada tabel yang akan di edit, maka akan tampil di textbox. Lakukan pengeditan kemudian klik Update.  






Soal Nomor 3

Jika ingin merubah id maka klik tombol ID, maka textbox jenis dan jumlah akan tidak aktif, karena akan digunakan sebagai key dalam proses update id yang bertipe primary key.







Berikut adalah Codenya:


'import library mysql
Imports MySql.Data.MySqlClient.MySqlConnection
Imports MySql.Data.MySqlClient

Public Class Form1
    Dim con As New MySql.Data.MySqlClient.MySqlConnection("server=localhost;User Id='root';password='';database=subakti")
    Dim insert, hapus, updet As New MySql.Data.MySqlClient.MySqlCommand
    Dim mDA As New MySql.Data.MySqlClient.MySqlDataAdapter("SELECT * From ikan;", con)

    'function untuk menampilkan database ke tabel
    Private Sub penampilan()
        Try
            con.Close()
            con.Open()
            Dim dt As New DataTable
            mDA.Fill(dt)
            DataGridView1.DataSource = dt
            DataGridView1.Columns(0).Width = 50
            DataGridView1.Columns(1).Width = 150
            DataGridView1.Columns(2).Width = 75
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            con.Close()
        End Try
    End Sub

    'load awal form
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        penampilan()
        Button2.Enabled = False
        Button3.Enabled = False
        Button4.Enabled = False
        TextBox1.Enabled = True
        TextBox2.Enabled = True
        TextBox3.Enabled = True
    End Sub

    'tombol simpan/update
    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        If Button1.Text = "Simpan" Then
            Try
                con.Open()
                insert.CommandText = "insert into ikan (id, jenis, jumlah) values ('" + TextBox1.Text + "','" + TextBox2.Text + "','" + TextBox3.Text + "')"
                insert.Connection = con
                insert.ExecuteNonQuery()
                TextBox1.Text = ""
                TextBox2.Text = ""
                TextBox3.Text = ""
                penampilan()
                MessageBox.Show("Penambahan Data Berhasil")
            Catch ex As Exception
                MessageBox.Show("ID telah digunakan, coba ID yang lain!")
            Finally
                con.Close()
            End Try
        ElseIf Button1.Text = "Update" Then
            If (TextBox1.Enabled = False) Then
                Try
                    con.Open()
                    updet.CommandText = "update ikan set jenis = '" + TextBox2.Text + "', jumlah = '" + TextBox3.Text + "' where id = '" + TextBox1.Text + "'"
                    updet.Connection = con
                    updet.ExecuteNonQuery()
                    penampilan()
                    MessageBox.Show("Update Data Berhasil")
                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                Finally
                    con.Close()
                End Try
            Else
                Try
                    con.Open()
                    updet.CommandText = "update ikan set id = '" + TextBox1.Text + "' where jenis = '" + TextBox2.Text + "'"
                    updet.Connection = con
                    updet.ExecuteNonQuery()
                    penampilan()
                    MessageBox.Show("Update Data Berhasil")
                Catch ex As Exception
                    MessageBox.Show(ex.Message)
                Finally
                    con.Close()
                End Try
            End If
        End If
    End Sub

    'tombol tambah
    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        TextBox1.Text = ""
        TextBox2.Text = ""
        TextBox3.Text = ""
        Button1.Text = "Simpan"
        Button2.Enabled = False
        Button3.Enabled = False
        Button4.Enabled = False

    End Sub

    'tombol hapus
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        Try
            Dim cek As String = "SELECT count(*) from ikan"
            Dim ngecek As String
            con.Open()
            Dim cmd As MySqlCommand = New MySqlCommand(cek, con)
            ngecek = Convert.ToString(cmd.ExecuteScalar())
            Dim sebelum As String
            sebelum = ngecek

            hapus.CommandText = "delete from ikan where id = '" + TextBox1.Text + "'"
            hapus.Connection = con
            hapus.ExecuteNonQuery()
            penampilan()
            con.Close()
            con.Open()

            ngecek = Convert.ToString(cmd.ExecuteScalar())
            Dim sesudah As String
            sesudah = ngecek

            If (sebelum = sesudah) Then
                MessageBox.Show("Penghapusan gagal, tidak ada data dengan ID " + TextBox1.Text + ", tidak ada data yang terhapus.")
            Else
                MessageBox.Show("Data Berhasil dihapus")
            End If

            TextBox1.Text = ""
            TextBox2.Text = ""
            TextBox3.Text = ""
            Button1.Text = "Simpan"
            Button2.Enabled = False
            Button3.Enabled = False
            Button4.Enabled = False
        Catch ex As Exception
            MessageBox.Show(ex.Message)
        Finally
            con.Close()
        End Try
    End Sub

    'ketika tabel di klik, akan menampilkan data ke textbox
    Private Sub DataGridView1_CellClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellClick
        Dim i As Integer
        i = DataGridView1.CurrentRow.Index
        TextBox1.Text = DataGridView1.Item(0, i).Value
        TextBox2.Text = DataGridView1.Item(1, i).Value
        TextBox3.Text = DataGridView1.Item(2, i).Value
        Button1.Text = "Update"
        Button2.Enabled = True
        Button3.Enabled = True
        Button4.Enabled = True
        TextBox1.Enabled = False
        TextBox2.Enabled = True
        TextBox3.Enabled = True
    End Sub

    'tombol edit ID
    Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
        Button2.Enabled = False
        Button3.Enabled = False
        TextBox1.Enabled = True
        TextBox2.Enabled = False
        TextBox3.Enabled = False

    End Sub

End Class



Kalau mau download project silahkan DOWNLOAD DISINI



No comments:

Post a Comment

Berkomentarlah yang bijak. Komentar anda mencerminkan kehidupan anda.