文字列連結を使用して SQL クエリを作成しないでください。絶対に行わないでください!
あなたはSQLインジェクションに対してオープンです。言い訳はありません。代わりに 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)
ユーザーが有効な日付を指定しなかった場合は、意味のあるメッセージを表示してこのメソッドを終了します。 validFromDate
を確認できます および validToDate
これはブール値です。残りのコードが実行されます 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
varchar
を使用しているのを見ました datetimes
を保存する .なんで?データベースで修正してください。