Gebruik geen aaneenschakeling van tekenreeksen om uw SQL-query's te bouwen, NOOIT!
Je staat open voor sql-injectie, daar is geen excuus voor. Gebruik in plaats daarvan sql-parameters:
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)
Sluit deze methode nu af met een zinvol bericht als de gebruiker geen geldige datums heeft opgegeven. U kunt validFromDate
. controleren en validToDate
die booleans zijn. De rest van de code wordt uitgevoerd 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
Ik zag net dat je varchar
gebruikt om datetimes
op te slaan . Waarom? Repareer het in de database.