我有一个像这样的Select语句..
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个动态和(基于用户选择)。
请给我建议。
谢谢
发布于 2013-01-15 17:56:50
我会这样改变它
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)-更多和Clausesju
这样,如果您将空值传递到过程中,它们将在逻辑上被忽略-不知道它在您的情况下是否有效
明确构建动态tsql查询应用端是对sql注入的邀请。
发布于 2013-01-15 15:41:20
Use for every语句:
qry = qry &“And (A.Gender='”& gender.Text & "‘OR '“& gender.Text &”’= '‘) "
https://stackoverflow.com/questions/14333041
复制相似问题