我有一个像这样的Select Statement ..
Select * From A Join B on A.ID = B.ID
And A.Gener = 'M'
And A.Age = 21
And B.School = 'Bluh'
--- many more AND Clauses
现在这些“AND”子句是动态的,它们将根据我的vb.net Web应用程序中的用户选择进行构建....
例如......
if gener.text <> "" Then
qry = qry & " And A.Gender='M'"
我真的不想像这样在运行中构建我的SQL查询。有没有办法更好地使用LINQ或其他东西?
我的实际SQL查询最多包含30个动态AND(基于用户选择)。
请告知。
由于
答案 0 :(得分:1)
用于每个陈述:
qry = qry&amp; “和(A.Gender ='”&amp; gender.Text&amp;“'OR'”&amp; gender.Text &安培; “'='')”
答案 1 :(得分:0)
我会这样改变
Select * From A Join B on A.ID = B.ID
And (A.Gener = @arg1 or @arg1 is null)
And (A.Age = @arg2 or @arg2 is null)
And (B.School = @arg3 or @arg3 is null)
---更多AND Clausesju
这种方式如果你将空值传递给程序,它们将被逻辑忽略 - 不知道它是否适用于你的情况
defoply构建动态tsql查询应用程序端是sql注入的邀请