这里是部分分页代码!运行时候出错
ResultSet Can Not Re-Read Row Data
大家帮忙看看,小弟谢了
int dipage=1;//当前页码数默认为1
String pages=request.getParameter("dipage");
if(pages==null)
{
pages="1";
}
try
{
dipage=Integer.parseInt(pages);
}
catch(Exception e)
{
dipage=1;
}
%>
<%Connection con;
Statement stm;
ResultSet rs;
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(ClassNotFoundException e)
{
out.print("类找不到!");
}
try{ con=DriverManager.getConnection("jdbc:microsoft:sqlserver://125.32.112.185:1433;DatabaseName=clinic","lihan","lihan"); stm=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sq="select * from message order by id desc";
rs=stm.executeQuery(sq);
int countRecord=0;//记录条数
int countPageRecord=0;//每页记录条数
int countPage=1;//总页数
countPageRecord=10;//每页5条记录,要设置每页记录条数就更改这个变量的值
rs.last();
countRecord=rs.getRow();
if(countRecord/countPageRecord==0)
countPage=countRecord/countPageRecord;
else
countPage=countRecord/countPageRecord+1;
if((dipage-1)*countPageRecord==0)
rs.beforeFirst();
else
rs.absolute((dipage-1)*countPageRecord);
%>
<%
int i=0;
while(rs.next())
{i++;
{
String address=rs.getString("address");
String telephone=rs.getString("telephone");
String username=rs.getString("username");
String title=rs.getString("title");
String content=rs.getString("content");
String sex=rs.getString("sex");
String email=rs.getString("email");
String messageTime=rs.getString("messageTime").substring(0,19);
String reply=rs.getString("reply");
%>
<table width="630" height="50" border="0">
<tr bgcolor="#dddddd">
<td height="10" width="130"><font color="#009944">来自:</font><%=address%></td>
<td width="100"><font color="#009944">姓名:</font><%=username %></td>
<td width="230"><font color="#009944">主题:</font><%=title%></td>
<td><font color="#009944">日期:</font><%=messageTime %></td>
</tr>
<tr bgcolor=#ffffee>
<td colspan="4"><font color="#009944">内容:</font><%=content %></td>
</tr>
<%if(reply!=null){ %>
<tr bgcolor=#CCCCCC>
<td colspan="4" bgcolor="#cffec8"><font color=red><b>医师回复:</b></font><%=reply%></td>
</tr>
<%} %>
</table>
<%
}
if(i>=countPageRecord) break; //当前页显示完,则退出循环
}
rs.close();
stm.close();
%>
<br>
<%
out.print("共"+countRecord+"条留言,共"+countPage+"页,当前第"+dipage+"页,每页"+countPageRecord+"条记录,");
if(dipage==1);//当前是首页
else//当前不是首页
{
out.print("<a href=liuyan.jsp?dipage=1><font color=red>首页</font></a>,");
out.print("<a href=liuyan.jsp?dipage="+(dipage-1)+"><font color=red>上一页</font></a>,");
}
if(dipage==countPage)//当前是末页
;
else//当前不是末页
{
out.print("<a href=liuyan.jsp?dipage="+(dipage+1)+"><font color=red>下一页</font></a>,");
out.print("<a href=liuyan.jsp?dipage="+countPage+"><font color=red>末页</font></a>");
}
con.close();
%>
<%
ResultSet Can Not Re-Read Row Data
大家帮忙看看,小弟谢了
int dipage=1;//当前页码数默认为1
String pages=request.getParameter("dipage");
if(pages==null)
{
pages="1";
}
try
{
dipage=Integer.parseInt(pages);
}
catch(Exception e)
{
dipage=1;
}
%>
<%Connection con;
Statement stm;
ResultSet rs;
try
{
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
}
catch(ClassNotFoundException e)
{
out.print("类找不到!");
}
try{ con=DriverManager.getConnection("jdbc:microsoft:sqlserver://125.32.112.185:1433;DatabaseName=clinic","lihan","lihan"); stm=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
String sq="select * from message order by id desc";
rs=stm.executeQuery(sq);
int countRecord=0;//记录条数
int countPageRecord=0;//每页记录条数
int countPage=1;//总页数
countPageRecord=10;//每页5条记录,要设置每页记录条数就更改这个变量的值
rs.last();
countRecord=rs.getRow();
if(countRecord/countPageRecord==0)
countPage=countRecord/countPageRecord;
else
countPage=countRecord/countPageRecord+1;
if((dipage-1)*countPageRecord==0)
rs.beforeFirst();
else
rs.absolute((dipage-1)*countPageRecord);
%>
<%
int i=0;
while(rs.next())
{i++;
{
String address=rs.getString("address");
String telephone=rs.getString("telephone");
String username=rs.getString("username");
String title=rs.getString("title");
String content=rs.getString("content");
String sex=rs.getString("sex");
String email=rs.getString("email");
String messageTime=rs.getString("messageTime").substring(0,19);
String reply=rs.getString("reply");
%>
<table width="630" height="50" border="0">
<tr bgcolor="#dddddd">
<td height="10" width="130"><font color="#009944">来自:</font><%=address%></td>
<td width="100"><font color="#009944">姓名:</font><%=username %></td>
<td width="230"><font color="#009944">主题:</font><%=title%></td>
<td><font color="#009944">日期:</font><%=messageTime %></td>
</tr>
<tr bgcolor=#ffffee>
<td colspan="4"><font color="#009944">内容:</font><%=content %></td>
</tr>
<%if(reply!=null){ %>
<tr bgcolor=#CCCCCC>
<td colspan="4" bgcolor="#cffec8"><font color=red><b>医师回复:</b></font><%=reply%></td>
</tr>
<%} %>
</table>
<%
}
if(i>=countPageRecord) break; //当前页显示完,则退出循环
}
rs.close();
stm.close();
%>
<br>
<%
out.print("共"+countRecord+"条留言,共"+countPage+"页,当前第"+dipage+"页,每页"+countPageRecord+"条记录,");
if(dipage==1);//当前是首页
else//当前不是首页
{
out.print("<a href=liuyan.jsp?dipage=1><font color=red>首页</font></a>,");
out.print("<a href=liuyan.jsp?dipage="+(dipage-1)+"><font color=red>上一页</font></a>,");
}
if(dipage==countPage)//当前是末页
;
else//当前不是末页
{
out.print("<a href=liuyan.jsp?dipage="+(dipage+1)+"><font color=red>下一页</font></a>,");
out.print("<a href=liuyan.jsp?dipage="+countPage+"><font color=red>末页</font></a>");
}
con.close();
%>
<%
解决方案 »
- 算法:每隔一周的周二、周三、周四、周六重复输出"hello"
- Struts2使用convention或codebehind零配置,action还可以用spring管理吗
- struts2在 jsp页面用getText()设置参数的难题!发了好几帖了,难道没人能解决??
- struts 逻辑标记小问题,问题解决一定给分!
- 严重: Error starting static Resources tomcat启动时候的问题了
- 一个很简单的查询语句,小弟不知道该怎么写?
- 用JSP绘图
- set里面怎么会有重复的值。
- tomcat经常报错,到底是我程序的问题,还是机器的问题呢?
- 一个数据库连接的bean,大家看看,帮忙完善
- 我该先学asp.net还是先学JSP?
- 怎样在客户端存储数据减少对SERVER的访问
不能所以操作last和beforeFirst
rs.beforeFirst();
你可以遍历一次rs,放到list里面然后你在所以读。不会有性能问题放心吧,尤其是想你这么写,更不会有性能问题,
lz可以适当考虑用类封装下。
stm=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
...修改为:stm=con.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
建议楼主不要把DB操作代码放在JSP里了,很难维护,像1楼大哥说的那样封装成类,在JSP里调用那个类的方法,取得结果就可以啊
(2)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,不存在image或text类型字段,那么可以按照无序获取
(3)如果采用微软提供的ms sql server jdbc driver,如果查询语句中,存在image或text类型字段,那么就必须按照顺序读取,否则就会报告Driver]ResultSet can not re-read row data for column之类的错误
(4)如果想不查询语句中有没有image或text类型字段,都可以不按照顺序获取,或重复获取。那么就必须更换驱动,改用第三方的。
http://jtds.sourceforge.net/