有关两个IF选择条件的问题

nyliuhaiyang 2003-10-09 09:46:54
<html>
<body>
<%@ page contentType="text/html;charset=Big5" %>
<%@ page import="java.sql.*"%>
<jsp:useBean id="db" scope="page" class="hello.condb" />
<jsp:useBean id="db1" scope="page" class="hello.catapage" />
<form method="post" action="if.jsp" name="form1">
<table border="0" width="100%">
<tr>
<td width="20%"></td>
<td width="20%">出車日期</td>
<td width="20%"><input type="text" name="dt" size="20"></td>
</tr>
<tr>
<td width="20%"></td>
<td width="20%">收貨人</td>
<td width="20%"><input type="text" name="receive" size="20"></td>
</tr>
<tr>
<td width="100%" colspan="5">
<p align="center"><input type="submit" name="submit" value=" 查詢 " ></td>
</tr>
<table>

<% String dt1,receive1;
String lic_hk=null;
dt1=request.getParameter("dt");
receive1=request.getParameter("receive");
String sql="select carry_m.lic_hk";
sql+=" from carry_m,carry_l where carry_m.dt=carry_l.dt and carry_m.lic_hk=carry_l.lic_hk";

if(dt1!=null)
sql+=" and carry_m.dt=to_date('"+dt1+"','yyyy/mm/dd')";
if(receive1!=null)
sql+=" and receive='"+receive1+"'";

ResultSet rs=db.executeQuery(sql);
while(rs.next())
{
lic_hk=rs.getString(1);
%>
<tr>
<td> <%=lic_hk%></td>
</tr> <%}%>
</table>
</form>
</body>
</html>
输入两个数据 出車日期 收貨人 可以查出数据.而在两个输入框中输入一个数据确不能查到数据.数据没有问题, 和数据库中的相同. 两个IF选择语语句是不是有问题?
在测试时.只用到一个选择语句确没有问题. 当然.这条语句是和输入框中的数据一致.
请问怎么样修改.可以达到两个输入框中输入任一项.可以查出结果!
...全文
231 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
比特灵 2003-10-09
  • 打赏
  • 举报
回复
if(dt1!=null&&dt.equals("")==false)
sql+=" and carry_m.dt=to_date('"+dt1+"','yyyy/mm/dd')";
if(receive1!=null&&receive1.equals("")==false)
sql+=" and receive='"+receive1+"'";
nyliuhaiyang 2003-10-09
  • 打赏
  • 举报
回复
if(dt1!=null)
sql+=" and carry_m.dt=to_date('"+dt1+"','yyyy/mm/dd')";
if(receive1!=null)
sql+=" and receive='"+receive1+"'";
改为
if(!"".equals(dt1))
sql+=" and carry_m.dt=to_date('"+dt1+"','yyyy/mm/dd')";
if("".equals(receive1))
sql+=" and receive='"+receive1+"'";
这样可以检查变量是否为null,是否时空字符串。浏览器提交的form中对于没有填写的text,提交空字符串。getParameter可能返回空字符串("").



nyliuhaiyang 2003-10-09
  • 打赏
  • 举报
回复
非溃感谢tangzhongp 朋友!

帮我了一个大忙!
THANKS!
tanndy 2003-10-09
  • 打赏
  • 举报
回复
上面的做法好像没有问题。
在ResultSet rs=db.executeQuery(sql);之前打印SQl语句,在查询分析器里面直接执行SQL,看看是不是有执行结果,然后就可以确定错误的地方了。

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧