带有可选字段和不同条件的SQL搜索查询

时间:2013-09-09 13:05:03

标签: c# .net sql visual-studio-2010

我搜索用户可以指定多个搜索条件。在某些标准字段中,他们选择是否要搜索特定值或范围。例如,用户可以搜索名为“周结束”的字段。用户可以选择此字段的值是特定日期,还是在两个日期之间。

每个标准字段都是可选的。

我很难找到一种方法来创建一个SQL查询来支持这样的事情。我能看到的最简单的方法是拥有大量不同的查询来支持每个不同的组合,但这很糟糕,必须有更好的解决方案。

我尝试使用IFNULL和COALESC这样做,但我遇到的问题是如何处理>的可选存在?和=。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

如果您正在使用LINQ-To-SQL或LINQ-To-Entities,则可以使用每个可选搜索字段动态构建LINQ语句。

或者,您可以在将SQL查询字符串传递给数据库之前构建它。这是一个过时的方法,你不会像LINQ那样进行编译时检查。如果确实沿着这条路线前进,请务必使用SQL参数,不要将搜索参数附加到查询中。

我真的试图避免重复任何查询代码,坚持DRY原则,你以后会为自己节省很多维护痛苦!