sql >> Databáze >  >> RDS >> Sqlserver

Vyberte z databáze SQL Server se specifickým rozsahem pomocí textového pole

Nepoužívejte zřetězení řetězců k vytváření dotazů SQL, NIKDY!

Jste otevřeni pro sql injekci, neexistuje pro to žádná omluva. Místo toho použijte parametry 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)

Nyní ukončete tuto metodu se smysluplnou zprávou, pokud uživatel nezadal platná data. Můžete zkontrolovat validFromDate a validToDate které jsou booleovské. Zbytek kódu se provede 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

Právě jsem viděl, že používáte varchar k uložení datetimes . Proč? Opravte to v databázi.




  1. tabulka připojení mysql

  2. Node.js se připojuje přes ssh

  3. Oracle Apex:postupný přístup k vytváření přepínačů v interaktivní sestavě

  4. php:obrácení efektů mysql_real_escape_string na binární