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

Pilih dari database SQL Server dengan rentang tertentu menggunakan kotak teks

Jangan gunakan penggabungan string untuk membuat kueri sql Anda, JANGAN PERNAH!

Anda terbuka untuk injeksi sql, tidak ada alasan untuk itu. Alih-alih gunakan parameter sql:

Dim dateFrom as Date
Dim dateTo as Date
Dim validFromDate = Date.TryParse(Txtfromyear_reprt.Text.Trim(), dateFrom)
Dim validToDate = Date.TryParse(Txttoyear_reprt.Text.Trim(), dateTo)

Sekarang keluar dari metode ini dengan pesan yang bermakna jika pengguna tidak memberikan tanggal yang valid. Anda dapat memeriksa validFromDate dan validToDate yang boolean. Sisa kode dijalankan If validFromDate AndAlso validToDate :

Dim str As String = "select * from MYTABLE where Year >= @fromyear and Year <= @toyear"
da = New SqlDataAdapter(str, conn)
da.SelectCommand.Parameters.Add("@fromyear", SqlDbType.DateTime).Value = dateFrom 
da.SelectCommand.Parameters.Add("@toyear", SqlDbType.DateTime).Value = dateTo
' now you can use da.Fill(ds, "MYTABLE") safely

Saya baru saja melihat Anda menggunakan varchar untuk menyimpan datetimes . Mengapa? Perbaiki di database.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server 2008:Penyisipan Massal berlangsung selamanya

  2. Anatomi kebuntuan SQL Server dan cara terbaik untuk menghindarinya

  3. Di MS SQL Server, apakah ada cara untuk secara atom menambah kolom yang digunakan sebagai penghitung?

  4. Prosedur Dengan Parameter IN

  5. Microsoft.ReportingServices.Interfaces.dll hilang untuk SSRS 2005