站内搜索: 请输入搜索关键词

当前页面: 开发资料首页JSP 专题老问题求新解:据说是微软自带的sqlserver的jdbc驱动缺陷所致

老问题求新解:据说是微软自带的sqlserver的jdbc驱动缺陷所致

摘要: 老问题求新解:据说是微软自带的sqlserver的jdbc驱动缺陷所致


近来在学习JAVA,写到一个数据查询方法时,遇到了一个问题,凡是数据库字段有text或ntext等大字段时,就肯定会出现...[sqlserver 2000 driver for jdbc]resultset can not re-read row data for column 1错误,网上也找过资料,都说是这驱动的问题,如果不改驱动,只要按表的字段顺序读就可以了,但是,不知为何我这个方法就是不行,按说,我这个也是按顺序读的吧,怎么就会出现这错误呢,希望大家指点指点偶这个新手,谢谢。部分原代码如下(是写在一个类里,所以不能出现具体的表名和字段名)
[code]
while(rs.next()){
String[] strArrayTemp=new String[numberOfColumns];
for(int i=0;i if(rs.getString(i+1)==null){
strArrayTemp[i]= "";
}else{
strArrayTemp[i]=rs.getObject(i+1).toString();//就是这一句,如果遇到字段是text类型的,就出错了
}
}
ArrayRs.add(strArrayTemp);
}
return (ArrayList)ArrayRs.clone();
}
[/code]





...[sqlserver 2000 driver for jdbc]resultset can not re-read row data for column

是你的代码写的又问题,不能重复读同一行得值。
程序顺序运行
先: if(rs.getString(i+1)==null){//这里已经把值读出来了
你后来还

在这里取值
strArrayTemp[i]=rs.getObject(i+1).toString();//所以出错了


你可以改下

String s[]=rs.getString(i+1)
if(s[]==null)
{}
else
{}





哦,谢谢。我会我试试看


顺利通过,非常感谢!结题送分


↑返回目录
前一篇: 中文文件名下载问题
后一篇: JBoss+Eclipse+Tomcat+Struts是否可行