在企业应用程序开发中经常遇到,查询数据库的时候,查询的where条件可能不止一个,可能没有条件,也有可能至少一个或者多个条件,遇到这种情况,今天看到论坛上有人用C#的 if 语句拼接,这样解决可以是可以,不过显得太过累赘也没有必要,其实,一句固定的 sql 语句句型即可解决:
select * from t
where (a = @a or @a is null)
and (b = @b or @b is null)
and (c = @c or @c is null)
-- 如果参数 @a、@b、@c 的某一个值为 null,则等同于无该条件
==============================================================
更多示例代码,可以访问微软Codeplex网站 Code smaples from microsoft:
http://1code.codeplex.com ,下载微软的 All-In-One Code Framework.