Board logo

标题: 为什么得不到记录集的结果??? [打印本页]

作者: win2000    时间: 2006-2-21 11:10     标题: 为什么得不到记录集的结果???

<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ page import="java.sql.*" %>
<%@ page import="java.util.*" %>
<%@ page import="java.io.*" %>
<%@ page import="java.text.*" %>
<%@ page import="com.zwqk.*" %>

<jsp:useBean id="QueryBeanKp" class="com.zwqk.workPk" scope="page">
<jsp:setProperty name="QueryBeanKp" property="*"/>
</jsp:useBean>

<html>
<body>

<%
String kp = (String)request.getParameter("kp");
        ResultSet rs = QueryBeanKp.get_kp(kp);

int recordNum = 0;

while(rs.next())

recordNum ++;

{
%>
<table border="1">
<tr>

<td width="50%" border="1">
<table>
<%
int n = (recordNum + 1)/2;
int i = 0;

while(i<n && rs.next())
out.println("Test 1......");//不加这个就什么也显示不了了!???
{
%>
            <tr>
<td><input type="text" size="7"  value="<%//=rs.getString(1)%>"></td>
<td><input type="text" size="25" value="<%//=rs.getString(2)%>"></td>
<td><input type="text" size="6"  value="<%//=rs.getString(3)%>"></td>
<td><input type="text" size="4"  value="<%//=rs.getString(4)%>"></td>
<td><input type="text" size="4"  value="<%//=rs.getString("5")%>"></td>
            </tr>
<%
i = i + 1;
}
%>
</table>
</td>


<td width="50%" border="1">
<table>
<%
while(rs.next())
out.println("Test 2......");//不加这个就什么也显示不了了!???
{
%>
            <tr>
<td><input type="text" size="7" value="<%//=rs.getString(1)%>"></td>
<td><input type="text" size="25"value="<%//=rs.getString(2)%>"></td>
<td><input type="text" size="6" value="<%//=rs.getString(3)%>"></td>
<td><input type="text" size="4" value="<%//=rs.getString(4)%>"></td>
<td><input type="text" size="4" value="<%//=rs.getString(5)%>"></td>
            </tr>
<%
}
%>                                    
</table>
</td>

</tr>
</table>
<%
}
rs.close();
%>

</body>
</html>

而我用下面的代码却没有问题!这两个只是得到 rs 的方法不同而已!

<%@ page contentType="text/html;charset=GBK" language="java" %>
<%@ page import="java.sql.*,java.util.*,java.io.*,com.zwqk.*" %>

<html>
<body>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=zwqk";

String user = "sa";
String password = "";

Connection conn = DriverManager.getConnection(url,user,password);
Statement stmt = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
String sql = "select * from tblDdlr";

ResultSet rs = stmt.executeQuery(sql);

int recordNum = 0;

while( rs.next() )

recordNum++;
{
%>
    <table width="100%" border="1">
    <tr>
    <td width="50%">
    <table width="100%" border="1">
                    <%
                    rs.beforeFirst();
                    
                    int n = (recordNum + 1)/2;
                    int i = 0;
                    
                    while( i < n && rs.next() )
                    {
                    %>
    <tr>
    <td><%=rs.getString(1)%></td>
    <td><%=rs.getString(2)%></td>
    <td><%=rs.getString(3)%></td>
    <td><%=rs.getString(4)%></td>
    <td><% out.println(i);%></td>
    </tr>
                    <%
                    i = i + 1;
                    }
                    %>
    </table>
    </td>
        
    <td width="50%">
    <table width="100%" border="1">
                    <%                    
                    while( rs.next() )
                    {
                    %>  
    <tr>
    <td><%=rs.getString(1)%></td>
    <td><%=rs.getString(2)%></td>
    <td><%=rs.getString(3)%></td>
    <td><%=rs.getString(4)%></td>
    <td><% out.println( (recordNum - n) + i ); %></td>
    </tr>
    <%
    }
    %>
    </table>
    </td>
   
    </tr>
    </table>
<%
}
%>

</body>
</html>
急等中请大家帮忙亚.......
作者: 梦随风飘    时间: 2006-2-21 11:12

这是对rs理解错误的问题,当while(rs.next()){}运行完毕之后必段重新rs=stmt.executeQuery(sql);才可以进行下一个while(rs.next()){}
作者: 毛毛    时间: 2006-2-21 11:16

需要重新得到一个rs。你的第一段代码里在第一个while(rs.next())里已经让rs的指针指到了最后,在第二个while(rs.next())自然没内容了




欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/) Powered by Discuz! 6.0.0