Brug ikke strengsammenkædning til at bygge dine sql-forespørgsler, ALDRIG!
Du er åben for sql-injektion, der er ingen undskyldning for det. Brug i stedet sql-parametre:
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)
Afslut nu denne metode med en meningsfuld besked, hvis brugeren ikke har angivet gyldige datoer. Du kan kontrollere validFromDate
og validToDate
som er booleanere. Resten af koden udføres 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
Jeg har lige set dig bruge varchar
for at gemme datetimes
. Hvorfor? Ret det i databasen.