|
<% String sql= "SELECT * FROM party"; String sql2= "SELECT * FROM power"; ResultSet rs=stms.executeQuery(sql); ResultSet rs2=stms.executeQuery(sql2);%> <% while(rs.next()){ String name=rs.getString("partyName");%> <div id="KB1Parent" class="parent"> <a href="#" onClick="expandIt('KB1'); return false" ><img src="fold.gif" border=0><%=name%></a></div> <div id="KB1Child" class="child"> <% while(rs2.next()){ String pow=rs2.getString("pow");%> <a href="sample.htm" target="_blank" ><img src="list.gif" border=0 alt=""><img src="open.gif" border=0><%=pow%></a><br> <%};%> <%}; stms.close(); conn.close(); %> 在浏览器上总是说: Error 500--Internal Server Error From RFC 2068 Hypertext Transfer Protocol -- HTTP/1.1: 10.5.1 500 Internal Server Error The server encountered an unexpected condition which prevented it from fulfilling the request |
|
|
|
请是用两个数据库链接实例,如果使用一个,那么前一个结果集中的数据将被新的结果集替换,所以前一个结果集重的数据没有了。
|
|
|
用一个CONNECTION 建立两个STATEMENT 就可以了.
|
|
|
用同一个Connection建立两个Statement,在分别用不同的Statement建立不同的ResultSet就可以了.
ResultSet rs1 = stms1.executeQuery(sql); ResultSet rs2 = stms2.executeQuery(sql2); |
|
|
非常感谢大家,我把代码改了一下,上面的问题解决了,但是为什么老是在显示出第一张表的第一条记录后就没了呢??
rs2中的内容根本就没有显示出来呀? </script> </font></p> <% Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String sConnStr="jdbc:odbc:hjData"; Connection conn=DriverManager.getConnection(sConnStr); java.sql.Statement stms=conn.createStatement(); java.sql.Statement stms2=conn.createStatement(); %> <% String sql= "SELECT * FROM party"; String sql2= "SELECT * FROM power"; int i=1; ResultSet rs=stms.executeQuery(sql); ResultSet rs2=stms2.executeQuery(sql2);%> <% while(rs.next()){ String name=rs.getString("partyName");%> <div id="KB<%=i%>Parent" class="parent"> <a href="#" onClick="expandIt('KB<%=i%>'); return false" ><img src="fold.gif" border=0><%=name%></a></div> <%i++;%> <div id="KB<%=i%>Child" class="child"> <% while(rs2.next()){ String pow=rs2.getString("pow");%> <a href="sample.htm" target="_blank" ><img src="list.gif" border=0 alt=""><img src="open.gif" border=0><%=pow%></a><br> <%}; };%> <script language="JavaScript"> if (NS4) { firstEl = "KB1Parent"; firstInd = getIndex(firstEl); arrange(); } </script> |
|
|
我在上面用的是一个双重循环,第一个表读一条,然后把另一张表的所有记录读出,在接着读第一张表的下一条。。。
|
|
|
因为你的rs2在读完rs的第一条记录后,指针已经指向尾记录之后了.
当再此执行while(rs2.next){ .. }时出现异常造成的. |
|
|
赞成楼上这位老兄所说的.
我个人觉得如果在你第二个中仍然从数据库查一样的数据.不但麻烦,而且效果也很差. 我建议,你最好写一个第二个表的实体BEAN.从而将第二个表中的记录存放到此实体BEAN中. 以后当从第一个表中循环取记录时,就只需对此实体BEAN进行引用就行了.其执行的效果会要好些. |
|
|
楼上的好建议!
|
|
|
<% while(rs.next()){
String name=rs.getString("partyName");%> <div id="KB<%=i%>Parent" class="parent"> <a href="#" onClick="expandIt('KB<%=i%>'); return false" ><img src="fold.gif" border=0><%=name%></a></div> <%i++;%> <div id="KB<%=i%>Child" class="child"> <% while(rs2.next()){ String pow=rs2.getString("pow");%> <a href="sample.htm" target="_blank" ><img src="list.gif" border=0 alt=""><img src="open.gif" border=0><%=pow%></a><br> <%}; rs2.beforeFirst(); };%> |
|