其实我要实现的功能很简单,就是像这个网站  http://www.no5.com.cn  左边的商品分类菜单,程序分别检索大类与小类的表,并显示出来。可是程我的序只显示了大类的信息,小类的确显示不出来,请高手帮看看是怎么回事,是我的逻辑错误,还是其他原因,谢谢先!!!源码如下:
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*" errorPage="" %>
<%@ page import="java.util.*" %>
<%@ page import="java.sql.*" %>
<%
Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();String  url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=eshopDB";    String  user="sa";    
String  password="dba";  
Connection  conn=DriverManager.getConnection(url,user,password); 
Statement stmt =conn.createStatement();String sql="select *  from ProductClass";ResultSet rs = stmt.executeQuery(sql);
String classID = null ; 
%>
<table>
<!----------一级分类------------>
   <% while(rs.next())  {  
       classID= rs.getString("ClassID");
%>
    <tr>
        <td width="120" colspan="2"> 
             <a href="hello.jsp?ID=<%=rs.getString("ClassID")%>"><%=rs.getString("ClassName")%></a> 
<%}%>
</td>
    </tr><!----------二级分类------------>
<%
String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+classID+"'";
ResultSet m_rs = stmt.executeQuery(m_sql);
%>
 <% while(m_rs.next())  {  %>
    <tr>
        <td width="70"> 
             <a href="hello.jsp?ID=<%=m_rs.getString("CategoryID")%>"><%=rs.getString("CategoryName")%></a> 
 <%if(m_rs.next()){%>
        </td>
<td width="70"><a href="hello.jsp?ID=<%=m_rs.getString("CategoryID")%>"><%=m_rs.getString("CategoryName")%></a> 
<%}%>
</td>
    </tr>
   <%}%>
   <!----------------------------------------------------------------->
</table>

解决方案 »

  1.   

    <%@ page contentType="text/html; charset=gb2312"  %>
    <%@ page import="java.sql.*" %>
    <%
        try{
    Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
    String  url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=eshopDB";    
    String  user="sa";    
    String  password="dba";  
            Connection  conn=DriverManager.getConnection(url,user,password); 
            Statement stmt =conn.createStatement();
    String sql="select *  from ProductClass";
       ResultSet rs = stmt.executeQuery(sql);
            String classID = null ; 
    %>
        <table>
            <!----------一级分类------------>
        <% while(rs.next())  
                        {  
            classID= rs.getString(1);
    %>
         <tr>
             <td width="120" colspan="2"><a href="hello.jsp?ID=<%=classID%>"><%=rs.getString(2)%></a></td>
         </tr>
                           <!----------二级分类------------>
    <%
    String m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+classID+"'";
    ResultSet m_rs = stmt.executeQuery(m_sql);
                                    while(m_rs.next()) 
                                    { 
                            %>
         <tr>
             <td width="70"><a href="hello.jsp?ID=<%=m_rs.getString(1)%>"><%=m_rs.getString(2)%> </a></td>
              <%
                                                       if(m_rs.next())  
                                                         {
                                                    %>
                                                         <td width="70"><a href="hello.jsp?ID=<%=m_rs.getString(1)%>"><%=m_rs.getString(2)%></a> </td>
                                                    <%
                                                         }
                                                    %>
                                            </tr>
                       <%
                                    }
            }
                 }
                 catch(Exception e)
                 {
                     out.println(e);
                 }
        %>
    </table>写的比较乱,我大致帮你看了一下
      

  2.   


    改了以后只显示第一张表的第一条信息与第二张表的ClassID等于第一张表ClassID的信息异常信息是:java.sql.SQLException: [Microsoft][SQLServer JDBC Driver]Object has been closed.
      

  3.   

    让我再来看一次,哈哈,不一定帮的了你,祝你好远。<%@ page contentType="text/html; charset=gb2312" errorPage="" %>
    <%@ page import="java.util.*,java.sql.*" %>
    <%
        
            String m_sql=null;
            ResultSet m_rs=null;
            String classID = null ;
        try{
            Class.forName( "com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
            String  url="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=eshopDB";    
    String  user="sa";    
    String  password="dba"; 
            Connection  conn=DriverManager.getConnection(url,user,password); 
            
    %>
        <table>
            <!----------一级分类------------>
        <% 
                      Statement stmt =conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
              String sql="select *  from ProductClass";
                 ResultSet rs = stmt.executeQuery(sql);
                        while(rs.next())  
                        {  
            classID= rs.getString(1);
    %>
         <tr>
             <td width="120" colspan="2"><a href="hello.jsp?ID=<%=classID%>"><%=classID%></a></td>
         </tr>
                 <!----------二级分类------------>
          <% 
                             Statement stm =conn.createStatement(java.sql.ResultSet.TYPE_SCROLL_INSENSITIVE,java.sql.ResultSet.CONCUR_READ_ONLY);
                             m_sql="Select CategoryID,CategoryName,ClassID from ProductCategory where ClassID='"+classID+"'";
             m_rs = stm.executeQuery(m_sql);
                             while(m_rs.next()) 
                             { 
                              %>
                  <tr>
                         <td width="70"><a href="hello.jsp?ID=<%=m_rs.getString(3)%>"><%=m_rs.getString(4)%> </a></td>
                                <td width="70"><a href="hello.jsp?ID=<%=m_rs.getString(3)%>"><%=m_rs.getString(4)%></a> </td>
                            </tr>
                             <%
                             }
             }
                 }
                 catch(Exception e)
                 {
                     out.println(e);
                 }
        %>
    </table>
      

  4.   


    谢谢 wsk_228(qing_feng)及所有关注此贴的兄弟
      

  5.   


    谢谢 wsk_228(qing_feng)好像可以了,我在试试哈