0

ユーザーが予算の MAX 値と MIN 値を入力して、それらの基準で利用可能なプロジェクトを検索する検索フォームがあります。

それらのフィールドに何を入力しても、常に同じ結果が表示されます(その検索フィールドのみ)。

データベースのフィールドは予算と呼ばれ、フロートです

MAX の値は次のとおりです (MIN と同じ)。

Dim s = Convert.ToDouble(TxtBudgetMax.Text)
SearchMaxBud = " AND budget =< " & s & " "

そして、クエリはちょうど満たされています

"SELECT * from Table where " & SearchMaxBud & ";"

DoubleVarchar偶数にしようとしましたが、それでは何も機能しません。任意のアイデアをお願いします? ありがとう

4

1 に答える 1

0

現時点では、クエリで見られる唯一の問題は、以下の記号である必要が<=あり、現在=<この行にあります。

SearchMaxBud = " AND budget =< " & s & " "

それ以外では、パラメーター化された値を使用して SQL インジェクションを回避します。

コードの修正は次のとおりです。

Dim SearchMaxBud as string
Dim minval = Convert.ToDouble(TxtBudgetMin.Text)
SearchMaxBud += "budget >= @minVal"
Dim maxval = Convert.ToDouble(TxtBudgetMax.Text)
SearchMaxBud += " AND budget <= @maxVal"
Dim query = "SELECT * from Table where " & SearchMaxBud & ";"

そしてメソッド@maxValを入力@maxValSqlCommandObject.Parameters.AddWithValue()ます。

于 2013-07-14T03:25:43.193 に答える