.net – 针对数据库表实现具有多个可选参数的搜索功能
|
我想检查是否有一个首选的设计模式来实现具有针对数据库表的多个可选参数的搜索功能,其中对数据库的访问应仅通过存储过程. 目标平台是.Net与SQL 2005,2008后端,但我认为这是非常普遍的问题. 例如,我们有客户表,我们希望为UI提供不同参数的搜索功能,例如客户类型,客户状态,客户邮编等,所有这些都是可选的,可以任意组合进行选择.换句话说,用户可以仅按customerType或按customerType,customerZIp或任何其他可能的组合进行搜索. >根据来自UI的搜索请求,在业务层中动态生成sql where子句sql语句,并将其作为参数传递给存储过程.像@Where =’,其中CustomerZip = 222221′ 哪里 (CustomerType = @CustomerType OR @CustomerType is null ) AND (CustomerZip = @CustomerZip OR @CustomerZip is null ) AND ………………………………………… 缺点:sql可能存在性能问题. 3.为每个搜索参数组合实现单独的存储过程. 解决方法这是描述如何在SQL: Dynamic Search Conditions in T-SQL by Erland Sommarskog中执行此操作的微妙性能影响的最佳文章.它涵盖了每个方法,并详细介绍了每种方法的PRO和Cons.(编辑:珠海站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- sql-server – sysmultiobjrefs SQL 2005上的TempDB争用
- 八亿时空促销超值、时尚、实用笔记本电脑
- 抛弃幼稚反病毒观念专家提醒企业防毒五误区
- sql – InnoDB排序真的很慢吗?
- sql-server – 存储过程和OPTIMIZE FOR UNKNOWN
- 解决Win8在VMware Fusion中使用Wacom笔不正常的问题
- sql-server – 对表的大改动有什么好处:每次DELETE和INSER
- 使用Sybase SQL Anywhere拆分/爆炸逗号分隔的字符串
- sql-server – 创建缓存(延迟假脱机)CTE结果的计划指南
- sql-server – SSD(Raid 1)vs SAS(Raid 10)Sql Server硬件推
