我现在在做一个JSP的数据查询读取的页,是按班组和按日期查询的,其中 strClass和strDate分别获取过来的班组和日期的关键字,初始值均为“”,我通过它们的值的不同来判断SQL语句,代码如下。通过运行测试之后,这两项的值都可以获取过来,但是只有两项都不为空和strClass不为空而strDate为空的情况下,才可以正常读取并显示,其他两种情况根本读不进if语句里,不知道是什么问题。另外我在Access查询器里试着运行了一下关于查询的SQL语句如:select * from wenjuan as w where 原始流水号 like '20090728'; 也是查不到信息的。请大家帮忙看看,多谢了啊!
if(strClass != "" && strDate == "")
sql = "select w.*,c.班组,c.班长 from wenjuan as w,class as c where c.成员 = w.受理工号 and c.班组 = '"+strClass+"'";
else if(strClass != "" && strDate != "")
sql = "select w.*,c.班组,c.班长 from wenjuan as w,class as c where c.成员 = w.受理工号 and c.班组 = '"+strClass+"' and w.原始流水号 like '%"+strDate+"%' ";
else if(strClass == "" && strDate != "")
sql = "select * from wenjuan as w where 原始流水号 like '%"+strDate+"%' ";
else
{
sql = "select * from wenjuan";
out.println("a???"); //测试语句,经测试为未执行
}
if(strClass != "" && strDate == "")
sql = "select w.*,c.班组,c.班长 from wenjuan as w,class as c where c.成员 = w.受理工号 and c.班组 = '"+strClass+"'";
else if(strClass != "" && strDate != "")
sql = "select w.*,c.班组,c.班长 from wenjuan as w,class as c where c.成员 = w.受理工号 and c.班组 = '"+strClass+"' and w.原始流水号 like '%"+strDate+"%' ";
else if(strClass == "" && strDate != "")
sql = "select * from wenjuan as w where 原始流水号 like '%"+strDate+"%' ";
else
{
sql = "select * from wenjuan";
out.println("a???"); //测试语句,经测试为未执行
}
解决方案 »
- 获取当前日期,代码好象没有问题,但出错啊。请教各位
- org.apache.jasper.JasperException: Unterminated <html:text tag
- 请问oracle的dbms_xmlquery.getXML()函数在java中怎么调用?
- ajax同步与异步 解惑
- JSP制作的EXCEL数据导入ORACLE的问题
- jsp问题 刷新时候会重复出现提交动作怎么办
- 俺要是搞定了,1000相送!
- jsp实现登录界面最小化
- SOS:ntext类型里的中文字符如何处理以显示正常?
- JAVA怎么实现加密函数处理字符串:使用函数是系统函数 crypt 并使用一个加密参数
- JS监听键盘事件初始化的问题
- Tomcat出现异常问题!急!在线等!
那你可以把strClass ,strClass 的值打印出来看看!!
自己先找找原因~~~
sql = "select w.*,c.班组,c.班长 from wenjuan as w,class as c where c.成员 = w.受理工号 and c.班组 = '"+strClass+"'";
else if(!"".equals(strClass) && !"".equals(strDate))
sql = "select w.*,c.班组,c.班长 from wenjuan as w,class as c where c.成员 = w.受理工号 and c.班组 = '"+strClass+"' and w.原始流水号 like '%"+strDate+"%' ";
else if("".equals(strClass) && !"".equals(strDate))
sql = "select * from wenjuan as w where 原始流水号 like '%"+strDate+"%' "; else {
sql = "select * from wenjuan";
out.println("a???"); //测试语句,经测试为未执行
}
org.apache.commons.lang.StringUtils.isNotEmpty(Str) 或者 isEmpty(Str)等同于对Str进行非空判断
就在这个if前打印它的条件,
看看true 还是false
在看能否进入if("".equals(strClass) && !"".equals(strDate))
这个判断中
要是相同的字符串多次要用
直接提出来申明个
String str=“select w.*,c.班组,c.班长 from wenjuan as w,class as c where c.成员 = w.受理工号 and c.班组”;
用的时候
String sql=str+“and 。”;
这个是我个人习惯, 一般程序也看着舒服!!!
还有打印的时候,有时空字符“”“ ”打印不出来看不来
System.out.print(":"+strClass+":"); 检查是否是“”还是“ ”;
个人意见~~