Slash

习惯在追逐的过程中不断去完善自己;当你不再去追逐,你自我完善的脚步也就停滞下来了。

导航

null引起的组合查询问题

      最近比较困,中午十二点才起的,现在就已经有点头晕,真叫人头疼!前天晚上一直做组合查询功能,原想不过就是select * from where ..and...and 即能解决(新手啊,汗......),孰料搞了一晚上竟然查不出一条数据,原来查询代码思路是直接用where ..and ...and形式,当时也想到用户输入为空的情况,不过以为'%'+""+'%'情况不能剔除一些数据记录,直接来个想当然。当我测试程序时输入能符合条件的字段却一直未能提取出任何记录,纳闷!
      仔细检查了select语句的写法,确认无误,依旧没有任何记录!尝试N次单步调,均无奈,一看时间已是凌晨4点,困得不行,只好暂时做罢!躺下后细想可能是null值问题引发,在查询管理器中使用相当条件却能正确检索出数据。
      9:00pm,开始寻求思路,csdn中搜了一通才恍然大悟:'%'+null+'%'已经排除了所有数据记录,并是我想象的不排除任何数据记录,惭愧!当然搜不出任何记录,于是用多条if语句,对where ..and ..and 语句进行组合才得以解决问题。具体代码如下:
     
string searchstr="select * from Goods where CategoryID='"+cid+"'";
                
string stradd=null;
                
if(name!="")
                    stradd 
=" and GoodName like '%'+'"+name+"'+'%'";
                
if(au!="")
                    stradd 
+=" and AutherName like '%'+'"+au+"'+'%'";
                
if(pre!="")
                    stradd 
+=" and Press like '%'+'"+pre+"'+'%'";
                
if(num!="")
                    stradd
+=" and ISBN like '%'+'"+num+"'+'%'";
                
if(intro!="")
                    stradd 
+=" and GoodDescription like '%'+'"+intro+"'+'%'";
                searchstr 
+=stradd;

       想当然的做法搞得自己忙活一晚上,惭愧!细想起来自己已经在null值和string等问题上栽了好几次了,要走的路还很长啊!

posted on 2006-04-05 15:01  Slash  阅读(595)  评论(0编辑  收藏  举报