Kami melihat pertanyaan-pertanyaan ini di sini setiap hari. Mereka berasal dari masalah yang sama.
JANGAN PERNAH MENGGUNAKAN KONCATENASI STRING UNTUK MEMBANGUN QUERI SQL.
Ini masalah besar. Tentu Anda sudah bertemu dengan efek pertama. Bagaimana cara mengonversi string dengan cara yang dapat diterima ke tipe data yang efektif? Anda perlu memecahkan masalah penguraian dengan tanda kutip yang disematkan, representasi tanggal dan angka desimal yang benar untuk sistem basis data yang mendasarinya. Tetapi efek samping kedua dan yang lebih halus dari penggabungan string adalah SQL Injection (Ini hanya tautan instruktif karena SQL Injection adalah topik yang sangat besar)
Untuk memecahkan masalah semacam ini, satu-satunya cara yang diterima adalah dengan menggunakan PARAMETER.
Ini berarti bahwa mesin basis datalah yang memecahkan pertanyaan dengan cara yang efisien, Anda memerlukan string dengan parameter placeholder (@sesuatu) dan a kumpulan Parameter dengan tipe data yang tepat untuk nilai parameter.
Jadi kode Anda harus berubah dengan cara ini
Dim strSQL As String = "SELECT EMP_ID,EMP_NAME,AT_STATUS,AT_REMARK " +
"FROM ATTENDANCE WHERE AT_DATE = @editdate " +
"ORDER BY EMP_NAME ASC"
Using con = new SqlConnection("constring_here")
con.Open()
Using cmd = new SqlCommand(strSQL, con)
cmd.Parameters.AddWithValue("@editdate", DTPEDITAT.Value)
' do whatever you want with the command '
' like ExecuteReader or use a DataAdapter to fill datasets'
End Using
End Using