sql语句里在where条件中使用case语句,这个想法,是在做asp.net的多条件组合查询时想到的
做多条件组合查询一般有两种办法,一个是在asp.net里,在Page_Load事件中,根据用户录入的值,判断条件组合sql语句,再执行sql语句,绑定结果到GridView
另一个方法是用存储过程,把全部可能的条件都传递到存储过程里,然后呢,在存储过程里判断每一个条件,组合sql语句后执行返回数据
这两个方法都要组合sql语句
还有就是如果遇到像L叔叔一样子不喜欢用存储过程的人,就要用第一种方法了,如果用第一种方法呢,还不可以直接用SqlDataSource绑定参数到控件,麻烦了
所以我想到在where条件里使用case,像这样子:
从写代码来说,这样子好方便,可以直接写sql语句,直接使用SqlDataSource,直接把每一个参数绑定到对应的控件上
就是,性能不好,GS说的
我想过了,GS是对的
用在where条件里,如果有n个记录,就要执行n次@UserName = ''的判断,然后呢,如果@UserName的值是''的,就变成where '' = ''
select * from A_User where '' = ''
和
select * from A_User
比起来,多了一个没有用的条件。。。为了得到这个条件,我还要执行n次判断
想着要在asp.net的代码里省省,就浪费了好多资源,这样子不好,放弃了。。。
狼哥! 现在有急事找您啊!如果你方便把您的Q或者邮箱贴出来,那麻烦请您加我Q365811328或者邮箱xionggang_1988@163.com, 是关于installshield修改XML的问题,我看您贴了一篇文章出来。谢谢您啊。我急死了啊
狼哥! 现在有急事找您啊!如果你方便把您的Q或者邮箱贴出来,那麻烦请您加我Q365811328或者邮箱xionggang_1988@163.com, 是关于installshield修改XML的问题,我看您贴了一篇文章出来。谢谢您啊。我急死了啊