sql >> Databasteknik >  >> RDS >> Sqlserver

Välj från SQL Server-databas med specifikt intervall med hjälp av textrutan

Använd inte strängsammansättning för att bygga dina sql-frågor, ALDRIG!

Du är öppen för sql-injektion, det finns ingen ursäkt för det. Använd istället sql-parametrar:

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)

Avsluta nu den här metoden med ett meningsfullt meddelande om användaren inte angav giltiga datum. Du kan kontrollera validFromDate och validToDate som är booleaner. Resten av koden exekveras 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

Jag såg precis att du använder varchar för att lagra datetimes . Varför? Fixa det i databasen.




  1. Vad är det bästa sättet att automatiskt generera INSERT-satser för en SQL Server-tabell?

  2. Orakel. Förhindrar sammanfogning av underfråga och huvudfrågevillkor

  3. ORA-29913:fel vid exekvering av ODCIEXTTABLEOPEN-utlysningen

  4. Multi-Statement TVFs i Dynamics CRM