Wednesday, August 7, 2013

pengen bisa VB.net dan lihat-lihat tutorial di internet (http://ho1onk.blogspot.com/2012/12/membuat-koneksi-vbnet-dengan-mysql.html) masih butuh banyak perbaikan di sana sini. Jadi saya fix bugging
ok this is the entire source :
Imports MySql.Data.MySqlClient
Public Class Form1
    Dim blnAdd As Boolean 'indicator if add button was pressed
    Dim db As New MySql.Data.MySqlClient.MySqlConnection
    Dim cmd As MySqlCommand
    Dim rs As MySqlDataReader
    Dim sql As String
    Sub opendb()
        sql = "server=localhost;uid=xxxxx;pwd=r4h4514;database=xxxxx"
        Try
            db.ConnectionString = sql
            db.Open()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
    End Sub
    Sub Rubah(ByVal T1 As Boolean, ByVal T2 As Boolean, ByVal T3 As Boolean, ByVal T4 As Boolean, ByVal T5 As Boolean, ByVal T6 As Boolean)
        baru.Enabled = T1
        edit.Enabled = T2
        hapus.Enabled = T3
        simpan.Enabled = T4
        batal.Enabled = T5
        keluar.Enabled = T6
    End Sub
    Sub BuatTable()
        ListView1.Columns.Add("NIDN", 80, HorizontalAlignment.Center)
        ListView1.Columns.Add("Nama", 120, HorizontalAlignment.Center)
        ListView1.Columns.Add("Keahlian", 80, HorizontalAlignment.Center)
        ListView1.Columns.Add("Alamat", 80, HorizontalAlignment.Center)
        ListView1.Columns.Add("Telp", 80, HorizontalAlignment.Center)
        ListView1.View = View.Details
        ListView1.GridLines = True
        ListView1.FullRowSelect = True
    End Sub
    Sub isitabel()

        ListView1.Items.Clear()

        sql = "select * from dosen"
        cmd = New MySqlCommand(sql, db)
        rs = cmd.ExecuteReader
        Try
            While rs.Read
                Dim baris As New ListViewItem
                baris.Text = rs("NIDN")
                baris.SubItems.Add(rs("Nama"))
                baris.SubItems.Add(rs("Keahlian"))
                baris.SubItems.Add(rs("Alamat"))
                baris.SubItems.Add(rs("Tlp"))
                ListView1.Items.Add(baris)
            End While
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try
        rs.Close()


    End Sub
    Sub hapussql()

    End Sub
    Sub bersih()
        NIDN.Text = ""
        Nama.Text = ""
        Keahlian.Text = ""
        Alamat.Text = ""
        Tlp.Text = ""
        isitabel()
        Rubah(True, True, True, False, False, True)
    End Sub
    Sub buka()
        NIDN.Enabled = True
        Nama.Enabled = True
        Keahlian.Enabled = True
        Alamat.Enabled = True
        Tlp.Enabled = True
    End Sub

    Sub tutup()
        NIDN.Enabled = False
        Nama.Enabled = False
        Keahlian.Enabled = False
        Alamat.Enabled = False
        Tlp.Enabled = False
    End Sub
    Private Sub Form3_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        opendb()
        BuatTable()
        isitabel()
        bersih()

    End Sub
    Private Sub baru_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles baru.Click
        bersih()
        buka()
        Rubah(False, False, False, True, True, False)
        NIDN.Focus()
        blnAdd = True
    End Sub

    Private Sub keluar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles keluar.Click
        Me.Close()
    End Sub

    Private Sub batal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles batal.Click
        bersih()
        tutup()
        NIDN.Focus()
        Rubah(True, True, True, False, False, False)

    End Sub

    Private Sub simpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles simpan.Click
        If blnAdd Then
            sql = "INSERT INTO dosen VALUES(' " & NIDN.Text & "',' " & Nama.Text & " ',' " & Keahlian.Text & " ',' " & Alamat.Text & " ',' " & Tlp.Text & " ')"
            Try
                cmd = New MySqlCommand(sql, db)
                cmd.ExecuteNonQuery()

            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            bersih()
            tutup()
            NIDN.Focus()
        Else
            sql = "UPDATE dosen SET nama='" & Nama.Text & "', keahlian='" & Keahlian.Text & "', alamat='" & Alamat.Text & "', tlp='" & Tlp.Text & "' where nidn='" & NIDN.Text & "'"
            Try
                cmd = New MySqlCommand(sql, db)
                cmd.ExecuteNonQuery()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
            bersih()
            tutup()
            NIDN.Focus()
        End If


    End Sub

    Private Sub edit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles edit.Click
        buka()
        blnAdd = False
        NIDN.Enabled = False
        Rubah(False, False, False, True, True, False)
    End Sub

    Private Sub hapus_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles hapus.Click
        MsgBox("Yakin Hapus??", vbYesNo, "peringatan")
        If vbYes Then
            sql = "DELETE FROM dosen where nidn='" & NIDN.Text & "'"
            Try
                cmd = New MySqlCommand(sql, db)
                cmd.ExecuteNonQuery()
                isitabel()
            Catch ex As Exception
                MsgBox(ex.Message)
            End Try
        End If
    End Sub

    Private Sub NIDN_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles NIDN.KeyPress
        If Asc(e.KeyChar) = 13 Then
            If NIDN.Text = "" Then
                MsgBox("Isi dulu NIDN nya mas bro")
            Else
                sql = "SELECT * FROM dosen where nidn='" & NIDN.Text & "'"
                cmd = New MySqlCommand(sql, db)
                rs = cmd.ExecuteReader
                Try
                    rs.Read()
                    Nama.Text = rs("Nama")
                    Keahlian.Text = rs("Keahlian")
                    Alamat.Text = rs("Alamat")
                    Tlp.Text = rs("Telp")
                    Rubah(False, False, True, True, True, False)
                Catch ex As Exception
                    Dim x As String
                    x = NIDN.Text
                    bersih()
                    NIDN.Text = x
                    Rubah(False, True, False, False, True, False)
                End Try
                rs.Close()
                Nama.Focus()
            End If
        End If
    End Sub

    Private Sub NIDN_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NIDN.TextChanged

    End Sub

  
    Private Sub ListView1_ItemSelectionChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
        For Each a In ListView1.SelectedItems
            Dim sQ As String = "select * from dosen where NIDN='" + ListView1.SelectedItems(0).Text + "'"
            NIDN.Text = ListView1.SelectedItems(0).Text
            Nama.Text = ListView1.SelectedItems(0).SubItems(1).Text
            Keahlian.Text = ListView1.SelectedItems(0).SubItems(2).Text
            Alamat.Text = ListView1.SelectedItems(0).SubItems(3).Text
            Tlp.Text = ListView1.SelectedItems(0).SubItems(4).Text
        Next
    End Sub
End Class



database struktur:

NIDN : varchar(50)
Nama : varchar(50)
Keahlian : varchar(50)
Alamat : varchar(50)
Tlp : varchar(50)

 Perbaikan bug dari yang dulu hanya Edit, Delete, cancel menggunakan database My SQL.
semoga next time bisa pake DB SQL Server