搞错了,应该是:
public void read() throws Exception{
DBConnect cn=new DBConnect("select * from BASIC where XH=?");
cn.setString(1,this.getXH());
ResultSet set=cn.executeQuery();
if (set.next())
{
this.setXM(set.getString("XM"));
this.setXB(set.getString("XB"));
this.setZZMM(set.getString("ZZMM"));
this.setMZ(set.getString("MZ"));
this.setSYSZD(set.getString("SYSZD"));
this.setZYH(set.getString("ZYH"));
this.setXSH(set.getString("XSH")); //这行报错,注释掉就正常运行
..
cn.close();
}
else
{
throw new Exception("没有该学生资料.");
}
}
数据库字段类型均为text类型..
public void read() throws Exception{
DBConnect cn=new DBConnect("select * from BASIC where XH=?");
cn.setString(1,this.getXH());
ResultSet set=cn.executeQuery();
if (set.next())
{
this.setXM(set.getString("XM"));
this.setXB(set.getString("XB"));
this.setZZMM(set.getString("ZZMM"));
this.setMZ(set.getString("MZ"));
this.setSYSZD(set.getString("SYSZD"));
this.setZYH(set.getString("ZYH"));
this.setXSH(set.getString("XSH")); //这行报错,注释掉就正常运行
..
cn.close();
}
else
{
throw new Exception("没有该学生资料.");
}
}
数据库字段类型均为text类型..
两中可能:
一: this没有setXSH方法
二: 表中没有 XSH 这个字段
如果是编译期,那么,贴出你的setXM、setZZMM方法的定义。
* Sets the xM.
* @param xM The xM to set
*/
public void setXM(String xM) {
XM = xM;
}
其他类推..
回复人: heartlessbug(多情臭虫) ( ) 信誉:100 2002-10-21 13:01:38 得分:8
sql的驱动不支持ResultSet的重复取值!如果你用的是oracle就不会出这样的错误了!我想你能够把ResultSet中的数据放到Vector中,这样就可以重复取值了,我就是这样做的!:)呵呵!
还是oracle好阿!
Top
回复人: jeffsang(单杰圣士) ( ) 信誉:100 2002-10-21 14:10:26 得分:8
如果你采用的微软自己提供的sqlserver jdbc驱动,它支持ResultSet的重复取值,但如果你的表结构有所改动,比如修改了字段名,或者在某个位置插入一个字段,就会出现你碰到的问题我觉得应该是jdbc驱动的bug,用下面的办法倒可以解决该问题,但不是很理想,逼不得已
pstmt = conn.prepareStatement(strSql, ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_UPDATABLE);good luck!
Top
该问题已经结贴 ,得分记录: cqfeng (2)、 linquan333 (2)、 heartlessbug (8)、 jeffsang (8)、
我如果按照sql取数据的顺序来rs.getString("")的话,没有问题,如果我不是按照哪个
顺序取的话就抱上面的错误,比如 select a,b from test;
我必须rs.getString("a")然后再rs.getString("b"),
但如果我rs.getString("b")然后再rs.getString("a"),就会出现上面的问题。
以前我写的类没有遇到上面的问题,我的数据库为sqlserver.94这样了,不能回头取数据的我也正好遇到这个问题,看过各种资料,结合自己的经验,觉得问题可能是该表中有text、image等大对象字段,才会发生上述错误。以上结论仅供参考!