Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

Baca data dari database sql menggunakan pemilih datetime

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


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara tercepat untuk memeriksa apakah suatu karakter adalah angka?

  2. Parameter panjang yang tidak valid diteruskan ke fungsi KANAN

  3. Bagaimana saya bisa mengambil semua karyawan yang akan berusia 21 tahun dalam waktu satu bulan?

  4. dapatkan semua anak bersarang untuk id orang tua

  5. SQL diperlukan:jumlahkan nilai berdasarkan bulan