我的工作任务涉及在应用程序中搜索搜索页面的SQL查询,该应用程序根据众多文档查询不同的文档(包括收入,发票,销售合同,销售订单,选择列表等)参数(文档创建日期范围,最终客户,文档的状态值等)。
sql select子句组件和sql条件组件将根据Web用户在搜索页面中输入值的方式而变化(即动态)。
一切似乎都暗示我使用动态SQL实现解决方案,我真的不喜欢。
我还在考虑使用String Builder在C#中构建sql查询,但在速度性能方面不会更差。
有人可以建议任何其他方法吗?
答案 0 :(得分:2)
如果您要使用传统的SQL路由,并且在编码时已知可能的参数列表,但许多是可选的,那么仍然可以在没有动态SQL的情况下完成。例如。
(@BeginDate Is Null or Document.BeginDate>=@BeginDate) And (@EndDate Is Null or Document.EndDate<=@EndDate) And (@CustomerId Is Null or Document.CustomerId=@CustomerId) And (@DocumentStatus Is Null or Document.Status=@DocumentStatus)