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.