Menu

Tuesday, December 11, 2018

Tidak bisa menyimpan ke mysql karena karakter kutip

Cara Mengatasi Masalah Tidak Bisa Menyimpan ke MYSQL Karena Data Yang Disimpan Mengandung Tanda Kutip atau Petik.

Suatu hari...saat mencoba aplikasi yang saya buat, waktu itu sedang input data Mahasiswa yang kebetulan namanya Amar Ma'ruf Nahi Munkar. Tiba-tiba....ketika di klik Tombol Simpan Terjadi Loding beberapa saat dan akhirnya....Jebret..Jebret..Jebret..ERRORRRRRRR!

Loh..loh...dalam hati bertanya,..ko error..kenapa ya...karena sebelumnya lancar-lancar saja.

Akhirnya...Penganalisaan pun dilakukan dengan seksama... :)
tapi dalam tempo yang tidak singkat karena banyak kerjaan yang harus dikerjakan lebih dulu.
Setelah selang 1 hari,..setelah ingat lagi kalau ada error di program maka mulailah mencari dan akhirnya diketemukanlah cara mengatasi masalah input data yang mengandung tanda kutip atau petik.

Berikut dijelaskan cara langkahnya:
1. Buatlah Modul seperti dibawah yang didalamnya sudah ada Function dengan Nama Rep.
    atau bisa juga hanya buat Functionnya saja jika sebelumnya sudah ada modul koneksi.
    Imports MySql.Data.MySqlClient
    Module ModulKoneksi
       Public Conn As MySqlConnection
       Public RD As MySqlDataReader
       Public DA As MySqlDataAdapter
       Public CMD As MySqlCommand
       Public DS As DataSet
       Public simpan, ubah, hapus, sql As String
       Public Sub bukaDB()
       Dim SQLConn As String
       SQLConn = "server=localhost;Uid=root;Pwd=;Database=baak;convert zero datetime=true"
       Conn = New MySqlConnection(SQLConn)
       If Conn.State = ConnectionState.Closed Then
            Conn.Open()
       End If
    End Sub
    Public Function Rep(ByVal Kata As String) As String
        Rep = Replace(Kata, "'", "''")
    End Function

    End Module

2. Panggil Function di setiap objek input di script penyimpanan, misalnya seperti berikut
    Private Sub cmdsimpan_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdsimpan.Click
        If cmdsimpan.Text = "Simpan" Then
            If txtNIM.Text = "" Then
                MsgBox("NIM Harus Di isi", MsgBoxStyle.Exclamation, "Peringatan")
                txtNIM.Focus()
                Exit Sub
            End If
           
            Call bukaDB()
            CMD = New MySqlCommand("SELECT NIM from Mahasiswa WHERE NIM = '" & txtNIM.Text & "'", Conn)
            RD = CMD.ExecuteReader
            RD.Read()
            If RD.HasRows Then
                MsgBox("Maaf, Data dengan NIM tersebut telah ada", MsgBoxStyle.Exclamation, "Peringatan")
            Else
                Call bukaDB()
                simpan = "INSERT INTO Mahasiswa (NIM,NamaMahasiswa,TmpLahir,TglLahir,Jenjang,Jurusan,ProgramStudi,jk,telp,email,nmbpk,nmibu,almasal,almskrg,Status,KodeUser) VALUES ('" & txtNIM.Text & "','" & Rep(txtNama.Text) & "','" & _
                txtTmpLahir.Text & "','" & Format(TglLahir.Value, "yyyy-MM-dd") & "','" & txtJenjang.Text & "','" & txtJurusan.Text & "','" & txtProgramstudy.Text & "','" & cbojk.Text & "','" & txtTelp.Text & "','" & txtEmail.Text & "','" & txtbpk.Text & "','" & txtIbu.Text & "','" & txtAsal.Text & "','" & txtSekarang.Text & "','" & cbostatus.Text & "','" & Frm_Menu_Utama.Panel1.Text & "')"
                CMD = New MySqlCommand(simpan, Conn)
                CMD.ExecuteNonQuery()
                Call isiGrid()
                cmdsimpan.Text = "Tambah"
            End If
        Else
            Call Bersih()
            txtNIM.Focus()
            cmdsimpan.Text = "Simpan"
        End If

    End Sub

3. Jalankan

Semoga bermanfaat

No comments:

Post a Comment