KERJA IT - COMPUTER

Markas Rabbani Surabaya Jl.Pucang Anom Timur No. 14 Surabaya Telp. 08123015071 Email : Markas_rabbani_sby@yahoo.co.id

  • RSS
  • Google +
  • Facebook

Popular Posts

IDHOSTINGER memang OK
Radio - TV OnLine
Asyiiikk Bro

Translate Google

Popular Posts

Markas Rabbani Surabaya

HOSTINGER

Web Hosting

KOMINITAS VFP

IP ADDRESS INFO

IP

Total Tayangan Halaman

HOSTINGER

Web Hosting

Prof DR KH Said Aqil Sirodj - Ketua PB NU

Gus Mus - Prof DR KH Said Aqil Sirodj - Alm Gus Dur

HOSTINGER Web Gratis Tanpa Iklan

Gak Percaya Buktikan

Griya Asy-Syifa

Jl Suromulang Timur II/18 Perum Citra Surodinawan Estate Kota Mojokerto Contac : 081231821800, 08814353000, 085746201881 Pin BB : 24D0B84C e-mail : ariesmojokerto@gmail.com

HOSTINGER Gratis tanpa Iklan

Web Hosting GRATIS dI Indonesia Tanpa Iklan

WaliSongo

Babat alas Tanah Jawa - Pengikut Nabi Muhammad saw - NU

Sabtu, 06 Oktober 2012

VB 2010 CONNECT MYSQL



Koneksi MySQL dengan VB .Net 2010 

Yup…sering kali lupa dan cari lagi…kali ini saya posting cara koneksi antara Database MySQL dengan

 VB .Net 2010, semoga dengan ini bisa ingat sepanjang jaman ya…^__^
 Baik, pertama kali apa saja yang diperlukan:
1. MySQL Server, dalam contoh saya menggunakan XAMPP 1.7.3
2. MySQL Connector, dalam contoh saya menggunakan versi 6.5.4
3. VB .Net, dalam contoh saya menggunakan yang 2010
 4. Windows XP 32 bit

Agar mudah, dalam melakukan koneksi dan operasi selanjutnya (yang berhubungan dengan database) kita gunakan Module.

Baik, langkah pertama tambahkan Module dalam Project baru di VB .Net 2010
Caranya mudah, Klik kanan di Nama Project yang terletak di Solution Explorer
> Add > Module
 seperti gambar berikut :



Beri nama sembarang, dalam contoh nama module saya adalah : "modulkust" Langkah kedua,
Add Reference (JANGAN LUPA INSTALL MYSQL CONNECTOR – nya),

caranya mirip dengan menambahkan modul, di

 Solution Explorer klik kanan Nama Project & Add Reference Pindah ke Tab Browse,
 lalu arahkan ke folder anda menginstall MySQL Connector, seperti dalam path berikut :
C:\Program Files\MySQL\MySQL Connector Net 6.5.4\Assemblies\v4.0



Select semua File (3 File), klik OK. Beres? belum dunk,
deklarasikan variabel berikut :

Dim serv As String = “Server=localhost;” 
Dim dbase As String = “Database=jualan;”
Dim uid As String = “uid=root;”
Dim pwd As String = “pwd=”

Apa tuh Fungsinya? ke 4 Variabel String diatas berguna untuk menentukan parameter-parameter yang di
butuhkan untuk membentuk koneksi ke MySQL, yang
- Pertama adalah Server yang menjalankannya,
dalam contoh ini saya menggunakan XAMPP, jadi Server bisa diisi dengan localhost.
- Kedua adalah nama database yang digunakan aplikasi yang sedang kita bangun,
  dalam contoh saya gunakan database bernama jualan.
- Ketiga dan empat adalah user id dan password yang digunakan untuk koneksi,
  seperti yang terlihat, dalam contoh ini user = root dan pass adalah kosong.
Masalah menentukan user dan password tergantung pada waktu kita mengInstall XAMPP
di Computer kita
Untuk yg pakai LAN , misal Servernya ada di IP Adreess : 192.168.1.8
maka localhost diganti : 192.168.1.8
 Sesuaikan parameter-parameter diatas dengan setting pada PC tempat database berada.
Selanjutnya tambahkan 2 variabel berikut:

Dim ConString = serv & dbase & uid & pwd
Public db As New MySqlConnection(ConString)

Ada lagi, apalagi tuh? nah yang pertama adalah susunan Connection String alias String untuk koneksi
dengan database MySQL, seperti yang terlihat sebenarnya formatnya adalah
 “Server;Database;UserID;Password”.

Sudah tahu kan dengan ini apa fungsi deklarasi 4 variabel penyusun diatas tadi?
Yup, keempatnya digabung (concat) dengan menggunakan operator “&” untuk membentuk satu
String Koneksi. Yang kedua adalah variabel untuk mewakili database yang telah dibentuk koneksinya.
Seharusnya saat ini terjadi error, pemecahannya lakukan import satu baris berikut :
 Imports MySql.Data.MySqlClient

Yup, import satu baris di atas tidak akan bisa dilakukan jika kita tidak melakukan
add reference di awal tadi…
Persiapan tahap awal sudah beres, berikutnya kita akan membentuk function/procedure untuk
melakukan koneksi dan mengakhiri koneksi. Untuk mengakhiri koneksi tuliskan procedure berikut :

 Public Sub tutupDB()
    If db.State = ConnectionState.Open Then
      db.Close()
    End If
End Sub
Penjelasan? OK2…pasti ada koq…^^…db.State = bla..bla.. then digunakan untuk memeriksa status
 koneksi apakah sedang terbuka atau tidak, jika ya tutup dengan syntax db.close() .
 Jangan lupa, variabel db adalah variabel yang kita gunakan untuk mewakili database yang telah
terbentuk koneksinya.
 Lalu untuk koneksinya ? nih…:

Public Sub konek()
  Try
   tutupDB()
  db.Open()
Catch ex As MySqlException
     MsgBox(ex.Message)
 End Try
End Sub

Minta penjelasan lagi? Iya…iya…pertama, apa itu Try – Catch?
 Mudahnya, agar jika operasi dalam jualan Try gagal dilakukan, program tidak keluar tanpa pesan, atau
ketidakjelasan sehingga kita sulit mengidentifikasi letak masalah.
 Selain itu, jika kita memikirkan pengguna, kasihan kan jika mereka tiba-tiba langsung diKick tanpa
 keterangan yang yaa…sebenarnya juga tidak terlalu membantu…;p
Nah, dengan Try – Catch ini, jika operasi dalam jualan Try gagal dilaksanakan, maka aplikasi akan
 mencoba menjalankan operasi yang ada dalam jualan Catch,
 dalam contoh diberikan MsgBox(ex.Message) dimana ini berguna untuk menampilkan pesan pop-up
berisi Error atau masalah yang terjadi.
 Nah, pesan ini bisa diganti dengan String sesuka pengembang, terutama jika nanti diterapkan untuk
pengguna dengan cara mengubah isinya menjadi MsgBox(“Pesan untuk Pengguna”),
gimana sip toh? Selipkan juga dalam Blok Try sebagai penanda bahwa koneksi berhasil dilakukan.
Sehingga isi keseluruhan file Module kita seperti berikut :


Imports MySql.Data.MySqlClient
Imports System.Data
Module modulkust 
Public cmd As New MySqlCommand
 Public dadapter As New MySqlDataAdapter
Public datardr As MySqlDataReader
Public strSql As String
Dim serv As String = "Server=localhost;"
Dim dbase As String = "Database=jualan;"
Dim uid As String = "uid=root;"
 Dim pwd As String = "pwd=;"
Dim ConString = serv & dbase & uid & pwd
Public db As New MySqlConnection(ConString)
Public Sub konek()
 Try
    tutupDB()
   db.Open()
   MsgBox("Koneksi DataBase berhasil dilakukan")
      Catch ex As MySqlException
          MsgBox(ex.Message)
          MsgBox("Koneksi tidak berhasil dilakukan")
  End Try 
End Sub 

Public Sub tutupDB()
     If db.State = ConnectionState.Open Then
       db.Close()
     End If
 End Sub 
End Module 


Imports MySql.Data.MySqlClient
Public Class Form1
    Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As   System.Windows.Forms.FormClosingEventArgs)
 
      tutupDB()
End Sub

 Private Sub btnkonek_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnkonek.Click
        konek()
    End Sub

' sub program ini di panggil sewaktu2 bila perlu --> TampilData()

  Private Sub TampilData()
        Dim da As New MySqlDataAdapter("select * from customer", db)
        Dim dt As New DataTable
        da.Fill(dt)
        dgv.DataSource = dt
  End Sub
    Private Sub BersihData()
        txtnama.Text = ""
        txtalamat.Text = ""
        txtkota.Text = ""
        txttelpon.Text = ""
        txtemail.Text = ""
        txthp.Text = ""
        cbkelamin.Text = ""
  End Sub
    Private Sub DisplayData()
Dim da As New MySqlDataAdapter("SELECT * FROM customer WHERE customercode ='" & txtkdcust.Text & "'", db)
        Dim dt As New DataTable
        da.Fill(dt)
        dgv.DataSource = dt
 End Sub
    Private Sub CekData()
     
        Try
            tutupDB()
            db.Open()

        Catch ex As MySqlException
            MsgBox(ex.Message)
            MsgBox("Koneksi tidak berhasil dilakukan")
            Exit Sub
        End Try
        Try
        strSql = "SELECT * FROM customer WHERE customercode ='" & txtkdcust.Text & "'"
            cmd.CommandText = strSql
            cmd.Connection = db
            dadapter.SelectCommand = cmd

            datardr = cmd.ExecuteReader
            If datardr.HasRows Then
                datardr.Read()
                txtnama.Text = datardr("customername")
                txtalamat.Text = datardr("alamat")
                txtkota.Text = datardr("kota")
                txttelpon.Text = datardr("telp")
                txtemail.Text = datardr("email")
                txtmclc.Text = datardr("custlevelcode")
                txthp.Text = datardr("hp")
                cbkelamin.Text = datardr("jkelamin")
                txttlahir.Text = datardr("tempatlahir")
                cbstatus.Text = datardr("pekerjaan")
                dtpawal.Value = datardr("startdate")
                dtpexpired.Value = datardr("enddate")
                dtplahir.Value = datardr("tgllahir")
                If txtmclc.Text = "011" Then
                    cbpelanggan.Text = "Member Global"
                ElseIf txtmclc.Text = "022" Then
                    cbpelanggan.Text = "Agent"
                ElseIf txtmclc.Text = "025" Then
                    cbpelanggan.Text = "Sub Agent"
                End If
                txtalamat.Focus()
                MsgBox("Data dari Table Ditemukan....!", MsgBoxStyle.Exclamation, "Perhatian")

                Else
                    MsgBox("Data Tables Tidak Ditemukan....!", MsgBoxStyle.Exclamation, "Informasi")
                    BersihData()

                End If
                ' db.Close()
        Catch ex As Exception

        End Try

    End Sub

 ' input Kode Customer lalu tekan Enter

  Private Sub txtkdcust_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtkdcust.KeyPress
        If e.KeyChar = Chr(13) Then
            CekData()
            cbkelamin.Focus()
        End If

    End Sub

' Program di jalankan langsung jalankan sub ini:
   Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        TampilData()
    End Sub

' Ini Sub untuk button Simpan

 Private Sub btnSimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSimpan.Click
        Try
            tutupDB()
            db.Open()

        Catch ex As MySqlException
            MsgBox(ex.Message)
            MsgBox("Koneksi tidak berhasil dilakukan")
            Exit Sub
        End Try
' ini untuk ngecek Data apa sdh pernah di rekam atau belum
        Try
           strSql = "SELECT * FROM customer WHERE customercode ='" & txtkdcust.Text & "'"
            cmd.CommandText = strSql
            cmd.Connection = db
            dadapter.SelectCommand = cmd

            datardr = cmd.ExecuteReader
            If datardr.HasRows Then
                datardr.Read()
                ' txtWarna.Text = datardr("Warna")
                MsgBox("Data tersebut pernah di Rekam....!", MsgBoxStyle.Exclamation, "Perhatian")
                Exit Sub
            End If

        Catch ex As Exception

        End Try
' ini untuk simpan data ke MySql
        Try
            konek()
            Dim cmd As New MySqlCommand("insert into customer(customercode,customername,alamat,kota,custlevelcode,email,hp,jkelamin,startdate,enddate,tempatlahir,tgllahir,pekerjaan,telp) values('" & txtkdcust.Text & "','" & txtnama.Text & "','" & txtalamat.Text & "','" & txtkota.Text & "','" & txtmclc.Text & "','" & txtemail.Text & "','" & txthp.Text & "','" & cbkelamin.Text & "','" & Format(dtpawal.Value, "yyyy-MM-dd HH:mm:ss") & "','" & Format(dtpexpired.Value, "yyyy-MM-dd HH:mm:ss") & "','" & txttlahir.Text & "','" & Format(dtplahir.Value, "yyyy-MM-dd") & "','" & cbstatus.Text & "','" & txttelpon.Text & "')", db)
            cmd.ExecuteNonQuery()
            DisplayData()
        Catch ex As Exception
            MsgBox(ex.Message)
        End Try

    End Sub
' Ini untuk Merubah atau Update
  Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpdate.Click
        konek()
        Dim cmdb As New MySqlCommand(("update customer set customername='" & txtnama.Text & "',alamat ='" & txtalamat.Text & "',kota ='" & txtkota.Text & "',email ='" & txtemail.Text & "',pekerjaan ='" & cbstatus.Text & "',tempatlahir ='" & txttlahir.Text & "',tgllahir ='" & Format(dtplahir.Value, "yyyy-MM-dd") & "',telp ='" & txttelpon.Text & "',hp ='" & txthp.Text & "',startdate ='" & Format(dtpawal.Value, "yyyy-MM-dd HH:mm:ss") & "',enddate ='" & Format(dtpexpired.Value, "yyyy-MM-dd HH:mm:ss") & "',jkelamin ='" & cbkelamin.Text & "' WHERE customercode ='" & txtkdcust.Text & "'"), db)
        cmdb.ExecuteNonQuery()
        DisplayData()

    End Sub

' ini untuk Combo box Pelanggan - Tombol Enter

   Private Sub cbpelanggan_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cbpelanggan.KeyPress
        If e.KeyChar = Chr(13) Then

        If cbpelanggan.Text = "Member Global" Then
                cbpelanggan.Text = "Member Global"
                txtmclc.Text = "011"
                txtalamat.Focus()
        ElseIf cbpelanggan.Text = "Agent" Then
                cbpelanggan.Text = "Agent"
                txtmclc.Text = "022"
                txtalamat.Focus()
            ElseIf cbpelanggan.Text = "Sub Agent" Then
                cbpelanggan.Text = "Sub Agent"
                txtmclc.Text = "025"
                txtalamat.Focus()
        Else
            cbpelanggan.Focus()
        End If
        End If
    End Sub

' Ini untuk Sub Tombol Enter untuk Jenis Kelamin

 Private Sub cbkelamin_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cbkelamin.KeyPress
        If e.KeyChar = Chr(13) Then

            If cbkelamin.Text = "Laki - laki" Then
                cbkelamin.Text = "Laki - laki"
                 txtnama.Focus()
            ElseIf cbkelamin.Text = "Perempuan" Then
                cbkelamin.Text = "Perempuan"
                txtnama.Focus()
              Else
                cbkelamin.Focus()
            End If
        End If
    End Sub

' Ini untuk Sub Tombol Enter untuk Email

   Private Sub txtemail_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtemail.KeyPress
        If e.KeyChar = Chr(13) Then
            txttelpon.Focus()

        End If
    End Sub

' Ini untuk Sub Tombol Enter untuk Telpon

  Private Sub txttelpon_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txttelpon.KeyPress
        If e.KeyChar = Chr(13) Then
            txthp.Focus()

        End If
    End Sub
' Ini untuk Sub Tombol Enter untuk Nama
  Private Sub txtnama_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtnama.KeyPress
        If e.KeyChar = Chr(13) Then
            cbpelanggan.Focus()
        End If
    End Sub

 ' Ini untuk Sub Tombol Enter untuk Alamat

  Private Sub txtalamat_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtalamat.KeyPress
        If e.KeyChar = Chr(13) Then
            txtkota.Focus()
        End If
    End Sub

 ' Ini untuk Sub Tombol Enter untuk Kota

  Private Sub txtkota_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtkota.KeyPress
        If e.KeyChar = Chr(13) Then
            txttlahir.Focus()
        End If
    End Sub

 ' Ini untuk Sub Tombol Enter untuk Tempat Lahir


   Private Sub txttlahir_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txttlahir.KeyPress

        If e.KeyChar = Chr(13) Then
            cbstatus.Focus()
        End If
    End Sub

 ' Ini untuk Sub Tombol Enter untukPekerjaan

  Private Sub cbstatus_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles cbstatus.KeyPress

        If e.KeyChar = Chr(13) Then

            If cbstatus.Text = "SMA" Then
                cbstatus.Text = "SMA"
                dtplahir.Focus()
            ElseIf cbstatus.Text = "MAHASISWA" Then
                cbstatus.Text = "MAHASISWA"
                dtplahir.Focus()
            ElseIf cbstatus.Text = "PNS" Then
                cbstatus.Text = "PNS"
                dtplahir.Focus()
            ElseIf cbstatus.Text = "PEG SWASTA" Then
                cbstatus.Text = "PEG SWASTA"
                dtplahir.Focus()
            ElseIf cbstatus.Text = "WIRASWASTA" Then
                cbstatus.Text = "WIRASWASTA"
                dtplahir.Focus()
            Else
                cbstatus.Focus()
            End If
        End If
    End Sub


 ' Ini untuk Sub Tombol Enter untuk Tanggal Lahir

  Private Sub dtplahir_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles dtplahir.KeyPress

        If e.KeyChar = Chr(13) Then
            txtemail.Focus()
        End If
    End Sub

  ' Ini untuk  Tombol Button Cari 

   Private Sub btnCari_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCari.Click

        CekData()

    End Sub



    ' Ini untuk  Tombol Button Bersihkan

 Private Sub btnBatal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnBatal.Click
        BersihData()
        txtkdcust.Focus()
    End Sub
End Class



Contoh yg sdh jalan  :

5 komentar:

  1. makasih tutorial.y..
    yang ingin sy tanyakan seperti ini:
    1)
    kalau program sudah jadi dan akan dijalankan di komputer lain apakah harus menginstall sqlserver semacam xammp atau tidak perlu??

    2)
    kalau seandainya tidak perlu menginstall sqlserver, bgmana mendeklarasikan "Dim serv As String = “Server=localhost;” "??

    terima kasih sbelumnya atas jawabannya.

    BalasHapus
    Balasan
    1. Trmksh Mas Osamaru ya Mas tetap harus di install Xampp nya karena itu sebagai Database nya
      Selama ini saya install di Computer server saja misal server nya : IP address nya : 192.168.1.5
      maka declare nya disesuaikan
      untuk LAN kan enak database nya (MYSQL) cukup di server saja jadi tetep harus di INstall

      Hapus
  2. mas, ko g ada keterangan nama2 dari textbox nya.....
    trus yang tgl lahir itu pake apa?? date time picker atau apa??

    BalasHapus
  3. Gan,, Ada gak yg project nya siap download??
    :)

    BalasHapus
  4. Thanks baungat bro, cuma kenapa bro cmdb.ExecuteNonQuery() saat tekan tombol Update, tidak berfungsi ya? malah muncul, duplucate primari key.
    Thanks atas pencerahanya.

    BalasHapus