我有一个搜索表单,用户输入预算的MAX和MIN值,以便在具有这些标准的可用项目之间进行搜索。
无论我在这些字段中放置什么,它总是显示相同的结果(仅适用于该搜索字段)。
数据库中的字段称为预算,是浮点数
这是MAX的值(与MIN相同)
Dim s = Convert.ToDouble(TxtBudgetMax.Text)
SearchMaxBud = " AND budget =< " & s & " "
查询只是填充
"SELECT * from Table where " & SearchMaxBud & ";"
我已尝试将其设为Double
,Varchar
甚至,并且没有任何效果。有什么好主意吗?感谢
答案 0 :(得分: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
方法填写@maxVal
和SqlCommandObject.Parameters.AddWithValue()
。