order by 从句应在 where 条件句之后建议将以下if语句置后! /******************* if(!tousu_start_date1.trim().equals("") && !tousu_end_date1.trim().equals("")) strSQL=strSQL+" tousu_date between #"+tousu_start_date1+"# and #"+tousu_end_date1+"# order by tousu_date desc"; /*******************
这样写对么??但是还是不行哦?? strSQL="select * FROM data where "; if( tousu_class1!=null && !tousu_class1.trim().equals("all")) strSQL=strSQL+" tousu_class like '%"+tousu_class1+"%' "; if(depart1!=null && !depart1.trim().equals("all") ) strSQL=strSQL+" and depart = '"+depart1+"' "; if( handle1!=null && !handle1.trim().equals("all") ) strSQL=strSQL+" and handle = '"+handle1+"' "; if( details1!=null && !details1.trim().equals("") ) strSQL=strSQL+" and details like '%"+details1+"%' "; if( person1!=null && !person1.trim().equals("all") ) strSQL=strSQL+" and person = '"+person1+"' "; if(!tousu_start_date1.trim().equals("") && !tousu_end_date1.trim().equals("") ) strSQL=strSQL+" and tousu_date between #"+tousu_start_date1+"# and #"+tousu_end_date1+"# order by tousu_date desc";
我这样做了还是不行哦 tousu_end_date1=request.getParameter("tousu_end_date"); if (tousu_end_date1 ==null) tousu_end_date1 =""; depart1=request.getParameter("depart"); if (depart1 ==null) depart1 =""; details1=request.getParameter("details"); if (details1 ==null) details1 =""; handle1=request.getParameter("handle"); if (handle1 ==null) handle1 =""; person1=request.getParameter("person"); if (person1 ==null) person1 =""; tousu_class1=request.getParameter("tousu_class"); if (tousu_class1 ==null) tousu_class1 =""; strSQL="select * FROM data where ";
if(!tousu_class1.trim().equals("")) strSQL=strSQL+" and tousu_class like '%"+tousu_class1+"%' "; if(!depart1.trim().equals("") ) strSQL=strSQL+" depart = '"+depart1+"' "; if( !handle1.trim().equals("") ) strSQL=strSQL+" and handle = '"+handle1+"' "; if( !details1.trim().equals("") ) strSQL=strSQL+" and details like '%"+details1+"%' "; if( !person1.trim().equals("") ) strSQL=strSQL+" and person = '"+person1+"' "; if(!tousu_start_date1.trim().equals("") && !tousu_end_date1.trim().equals("") ) strSQL=strSQL+" and tousu_date between #"+tousu_start_date1+"# and #"+tousu_end_date1+"# order by tousu_date desc";
/*******************
if(!tousu_start_date1.trim().equals("") && !tousu_end_date1.trim().equals(""))
strSQL=strSQL+" tousu_date between #"+tousu_start_date1+"# and #"+tousu_end_date1+"# order by tousu_date desc";
/*******************
strSQL="select * FROM data where ";
if( tousu_class1!=null && !tousu_class1.trim().equals("all"))
strSQL=strSQL+" tousu_class like '%"+tousu_class1+"%' ";
if(depart1!=null && !depart1.trim().equals("all") )
strSQL=strSQL+" and depart = '"+depart1+"' ";
if( handle1!=null && !handle1.trim().equals("all") )
strSQL=strSQL+" and handle = '"+handle1+"' ";
if( details1!=null && !details1.trim().equals("") )
strSQL=strSQL+" and details like '%"+details1+"%' ";
if( person1!=null && !person1.trim().equals("all") )
strSQL=strSQL+" and person = '"+person1+"' ";
if(!tousu_start_date1.trim().equals("") && !tousu_end_date1.trim().equals("") )
strSQL=strSQL+" and tousu_date between #"+tousu_start_date1+"# and #"+tousu_end_date1+"# order by tousu_date desc";
tousu_start_date1 是null
所以执行
if(!tousu_start_date1.trim().equals("") && !tousu_end_date1.trim().equals("")) 肯定提示空指针错误
解决方法:
在前面加一句
if (tousu_start_date1 ==null)
tousu_start_date1 ="";
注意你的每一个做类似操作的变量都必须这样做
tousu_end_date1=request.getParameter("tousu_end_date");
if (tousu_end_date1 ==null)
tousu_end_date1 ="";
depart1=request.getParameter("depart");
if (depart1 ==null)
depart1 ="";
details1=request.getParameter("details");
if (details1 ==null)
details1 ="";
handle1=request.getParameter("handle");
if (handle1 ==null)
handle1 ="";
person1=request.getParameter("person");
if (person1 ==null)
person1 ="";
tousu_class1=request.getParameter("tousu_class");
if (tousu_class1 ==null)
tousu_class1 ="";
strSQL="select * FROM data where ";
if(!tousu_class1.trim().equals(""))
strSQL=strSQL+" and tousu_class like '%"+tousu_class1+"%' ";
if(!depart1.trim().equals("") )
strSQL=strSQL+" depart = '"+depart1+"' ";
if( !handle1.trim().equals("") )
strSQL=strSQL+" and handle = '"+handle1+"' ";
if( !details1.trim().equals("") )
strSQL=strSQL+" and details like '%"+details1+"%' ";
if( !person1.trim().equals("") )
strSQL=strSQL+" and person = '"+person1+"' ";
if(!tousu_start_date1.trim().equals("") && !tousu_end_date1.trim().equals("") )
strSQL=strSQL+" and tousu_date between #"+tousu_start_date1+"# and #"+tousu_end_date1+"# order by tousu_date desc";