选择语句下钻



我有一个像这样的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个动态与(基于用户选择)。

请建议。

谢谢

用于所有语句:

qry = qry & "(a .性别='" &性别。文本,"或" &性别。文本,"' = ")"

我会这样修改

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)

——many more AND Clausesju

这样,如果你将空值传递给过程,它们将在逻辑上被忽略-不知道它是否适用于你的情况

构建动态TSQL查询应用程序端无疑是在邀请SQL注入

相关内容

  • 没有找到相关文章

最新更新