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
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
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