我觉得有必要在这里分享一下我得到解决关于 column can not be re-read 的问题,尽管这篇文章是受网上一篇文章的影响而发
jsp 页面:
view_edit.jsp
1 <jsp:useBean id="listType" class="net.inber.ViewListType" scope="page"/>
2 <jsp:useBean id="ls" class="net.inber.ListsBean" scope="page"/>
3 <%
4 String listsId=request.getParameter("id");
5 Lists lists=ls.getListsInfo(listsId);
6 %>
ListsBean 的部分代码:
21 public Lists getListsInfo(String listsId)throws Exception
22 {
23
24 Statement stmts=con.createStatement();
25 ResultSet rsts=stmts.executeQuery("select * from list_table where id='"+listsId+"'");
26 Lists lists=null;
27 while(rsts.next())
28 {
29
30
31
32 lists=new Lists();
33
34 lists.setItemName(rsts.getString("item_name"));
35 lists.setListTypeId(rsts.getString("list_type_id"));
}
return lists;
}
问题:
我一运行view_edit.jsp就出现如下错误:
[Microsoft][SQLServer 2000 Driver for JDBC]ResultSet can not re-read row data for column 2
开始我以为是1,2,行的bean和第5行的bean发生冲突,后来检查没有问题。。。郁闷得很。。
于是搜索一下baidu 受一文章启发
问题原因:34行item_name 和35行 list_type_id 在数据库中的位置 是list_type_id,item_name 在javabean中通过jdbc访问顺序不对就会再现些问题
解决办法将 34和35对换一下位置编译运行通过!!!
希望您尽快找到这篇文章并对您有所帮助---InberKong
引用原来出处:
利用JDBC连接MS SQL Ser2000+sp2 您要打印的文件是:利用JDBC连接MS SQL
Ser2000+sp2 打印本文
利用JDBC连接MS SQL Ser2000+sp2
作者:佚名 转贴自:本站原创 点击数:8
我在学习j2ee的时候使用jdbc连接过ms sql server
2000,开始的时候一切都正常,但是后来遇到了一个很头痛的问题,就是我们在从表中读取数据放到ResultSet中后,读取列值的时候一定的按照列的顺序读取。
比如如果表中有三列id, name, address,按条件查询得到的结果放到ResultSet中,显示结果时如果这样写代码:
java.sql.ResultSet employees;
while(employees.next()){
employees.getString(address);
employees.getString(name);
}
在运行的时候将会column can not be re-read错误,此时把两条语句颠倒就好了(此条只适用于连接MS SQL
Server 2000)
连接数据库代码如下:
try {
Class.forName(com.microsoft.jdbc.sqlserver.SQLServerDriver);
conn =
DriverManager.getConnection(
jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=Hotel;User=sa;Password=sa);
// Class.forName(sun.jdbc.odbc.JdbcOdbcDriver);
// conn = DriverManager.getConnection(jdbc:odbc:hotel);
} catch (SQLException e) {
System.err.println(e);
} catch (ClassNotFoundException e) {
System.err.println(e);
}