这是关于jsp的校园读者信息查询的代码,程序并没有报错,根据性别和班级查询读者信息,根据班级查询的可以实现,但根据性别查询的却没有显示读者信息,请高手指点
<body>
    <%  String selectetype=request.getParameter("selectetype");
String selecteinfo=request.getParameter("selecteinfo");
if(selectetype!=null&&selecteinfo!=null){
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
String strConn= "jdbc:sqlserver://localhost;databaseName=zc;user=sa;password=123";
Connection conn= DriverManager.getConnection(strConn);  
Statement stmt=conn.createStatement();
String sql1 ="select * from reader where sex='"+selecteinfo+"'"; 
ResultSet rs1= stmt.executeQuery(sql1);
    String userid="bysex";
String username = "bybanji";
if((userid.trim()).equals(selectetype.trim())){
%>
<table width="98%" border="1">
        <tr>
    <td width="13%">读者编号</td>  
    <td width="10%">姓名</td>
    <td width="8%">性别</td>
    <td width="12%">班级</td>
    <td width="20%">院系</td>
   </tr>
        <% while(rs1.next()){
out.print("<tr>");
out.print("<td>"+rs1.getString(1)+"</td>");
out.print("<td>"+rs1.getString(2)+"</td>");
out.print("<td>"+rs1.getString(3)+"</td>");
out.print("<td>"+rs1.getString(4)+"</td>");
out.print("<td>"+rs1.getString(5)+"</td>");
out.print("</tr>");}
%>
</table>
<%}
if((username.trim()).equals(selectetype.trim())){
String sql2 ="select * from reader where banji='"+selecteinfo+"'"; 
ResultSet rs2= stmt.executeQuery(sql2);
%>
<table width="98%" border="1">
        <tr>
    <td width="13%">读者编号</td>  
    <td width="10%">姓名</td>
    <td width="8%">性别</td>
    <td width="12%">班级</td>
    <td width="20%">院系</td>
   </tr>
<% while(rs2.next()){
out.print("<tr>");
out.print("<td>"+rs2.getString(1)+"</td>");
out.print("<td>"+rs2.getString(2)+"</td>");
out.print("<td>"+rs2.getString(3)+"</td>");
out.print("<td>"+rs2.getString(4)+"</td>");
out.print("<td>"+rs2.getString(5)+"</td>");
out.print("</tr>");}
%>
</table>
<%} }%>

解决方案 »

  1.   

    String selecteinfo=request.getParameter("selecteinfo");
    String sql1 ="select * from reader where sex='"+selecteinfo+"'";  
    String sql2 ="select * from reader where banji='"+selecteinfo+"'"; selecteinfo里面存的到底是什么?
      

  2.   

    不好意思我来晚了,回答完这个要睡觉了呵呵!
    String selecteinfo=request.getParameter("selecteinfo");
    String sql1 ="select * from reader where sex='"+selecteinfo+"'"; 
    从你的代码中可以看出你传到数据库的是String类型,而我相信你在数据库中sex的存储一定不是varchar吧。一般都是一个bity位或者是数字0或1,所以你要好好检查一下你的数据库中定义的类型,然后把selecteinfo做个转换就ok了,祝你好运!
      

  3.   

    我在数据库中sex的存储是varchar啊,运行以后是:
    Location http://localhost/book1/chaxunjieguo.jsp?selectetype=bysex&selecteinfo=%E7%94%B7&Submit=%E6%8F%90%E4%BA%A4
     
    读者编号 姓名 性别 班级 院系 并没有显示出读者信息啊,请求指点
      

  4.   

     <body>
        <form action="chaxunjieguo.jsp" method="get">
    <center>
      <span class="STYLE1">读者查询页面</span>
    </center>
    <br >
     <center>  查询方式:
     <label>
      <input type="radio" name="selectetype" value="bysex" />性别查询
      </label>
      <label>
      <input type="radio" name="selectetype" value="bybanji" />按班级查询
      <input type="text" name="selecteinfo" />
      </label>
      <label>
      <input type="submit" name="Submit" value="提交" />
      <tr><td colspan=11 align=center><a href="reader.jsp" class="STYLE2">返回</a></td>
      </tr>
      </label></center>
    </form>
      </body>
    </html>
    补充一下这个是chaxun.jsp的代码,上面那个是chaxunjieguo.jsp的代码,是由chaxun.jsp转跳到chaxunjieguo.jsp
      

  5.   

    楼主确认selecteinfo 是有值的?
      

  6.   

    应该没值吧,调试一下啊jsp调试很容易的
      

  7.   

    selectetype.trim()2个查询都是这个吗?有一个是selecteinfo吧;还有就是一个连接只能对应一个结果集的;请问LZ是什么原因?