数据库错误请高人指点 注意要加try-catch捕获异常!if(!result.next()) 不是很明白! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 SQLSERVER有一个乖僻就是在用结果集合取数据的时候,必须按照SELECT中列的顺序取值,否则就会报错 这样吧,看我的测试文件。testMssql.jsp<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%><html><body>以下是从Ms sql server数据库读取的数据:<hr><table border=1><tr><td>id</td><td>书名</td><td>出版社</td><td>价格</td></tr><% Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance(); Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=netet","sa"); Statement stmt=con.createStatement(); ResultSet rst=stmt.executeQuery("select * from user_info;"); while(rst.next()) { out.println("<tr>"); out.println("<td>"+rst.getString("User_id")+"</td>"); out.println("<td>"+rst.getString("User_name")+"</td>"); out.println("<td>"+rst.getString("User_email")+"</td>"); out.println("<td>"+rst.getInt("userLogCount")+"</td>"); out.println("</tr>"); } //关闭连接、释放资源 rst.close(); stmt.close(); con.close(); %> </table></body></html>这样是正常显示的,但是如果把while(rst.next())循环中的代码写两遍变成while(rst.next()) { out.println("<tr>"); out.println("<td>"+rst.getString("User_id")+"</td>"); out.println("<td>"+rst.getString("User_name")+"</td>"); out.println("<td>"+rst.getString("User_email")+"</td>"); out.println("<td>"+rst.getInt("userLogCount")+"</td>"); out.println("</tr>"); out.println("<tr>"); out.println("<td>"+rst.getString("User_id")+"</td>"); out.println("<td>"+rst.getString("User_name")+"</td>"); out.println("<td>"+rst.getString("User_email")+"</td>"); out.println("<td>"+rst.getInt("userLogCount")+"</td>"); out.println("</tr>"); }则报告错误:javax.servlet.ServletException: [Microsoft][SQLServer JDBC Driver]ResultSet can not re-read row data for column 1.但是奇怪的是我用另外的一个数据库的时候他确是好的。 呵呵,我自己发现了问题。我的数据库列很多二十多行,因为查询的时候用的是select * from 结果就出现了上面的问题,我把*改成需要的列以后问题消失。呵呵。谢谢各位的支持。 关于struts.xml Hibernate如何连接sql2000? 联动问题 请教各位高手 如何实现类似用邮箱“找回密码” 高手帮忙用java调用这个随机数存储过程 超难问题 ( 2 ) !!!在线等待中。。。。急!!! 大家帮我看看这段jsp程序哪里错了?(HOT!在线等待答对就给分) 求JSP中SQLServer的连接实例~ 走过路过请进来看看,贴了好几次了没人能解,快急死了!!!(Up 者有分) 在JSP中如何使一个button动态可用! 高分求救,jfreechart程序画不出图 哪里有下载图片上传类的地方?
<%@ page contentType="text/html; charset=gb2312" language="java" import="java.sql.*,java.io.*"%>
<html>
<body>
以下是从Ms sql server数据库读取的数据:<hr>
<table border=1>
<tr><td>id</td><td>书名</td><td>出版社</td><td>价格</td></tr>
<%
Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver").newInstance();
Connection con=java.sql.DriverManager.getConnection("jdbc:microsoft:sqlserver://127.0.0.1:1433;DatabaseName=netet","sa");
Statement stmt=con.createStatement();
ResultSet rst=stmt.executeQuery("select * from user_info;");
while(rst.next())
{
out.println("<tr>");
out.println("<td>"+rst.getString("User_id")+"</td>");
out.println("<td>"+rst.getString("User_name")+"</td>");
out.println("<td>"+rst.getString("User_email")+"</td>");
out.println("<td>"+rst.getInt("userLogCount")+"</td>");
out.println("</tr>");
}
//关闭连接、释放资源
rst.close();
stmt.close();
con.close();
%>
</table>
</body>
</html>
这样是正常显示的,但是如果把while(rst.next())循环中的代码写两遍变成
while(rst.next())
{
out.println("<tr>");
out.println("<td>"+rst.getString("User_id")+"</td>");
out.println("<td>"+rst.getString("User_name")+"</td>");
out.println("<td>"+rst.getString("User_email")+"</td>");
out.println("<td>"+rst.getInt("userLogCount")+"</td>");
out.println("</tr>");
out.println("<tr>");
out.println("<td>"+rst.getString("User_id")+"</td>");
out.println("<td>"+rst.getString("User_name")+"</td>");
out.println("<td>"+rst.getString("User_email")+"</td>");
out.println("<td>"+rst.getInt("userLogCount")+"</td>");
out.println("</tr>");
}
则报告错误:javax.servlet.ServletException: [Microsoft][SQLServer JDBC Driver]ResultSet can not re-read row data for column 1.
但是奇怪的是我用另外的一个数据库的时候他确是好的。
select * from 结果就出现了上面的问题,我把*改成需要的列以后问题消失。呵呵。谢谢各位的支持。