当前位置: 技术问答>java相关
请大家帮帮我解决一个有关JDBC的问题,谢谢先
来源: 互联网 发布时间:2015-09-17
本文导语: 我编写了一个有关JDBC的java程序,连接access数据库,程序能正常编译通过,但当程序运行到另一个分支时,总报错“[Microsoft][ODBC 驱动程序 管理器] 非法的游标状态“,我在程序中两次加载驱动程序与数据库进行连...
我编写了一个有关JDBC的java程序,连接access数据库,程序能正常编译通过,但当程序运行到另一个分支时,总报错“[Microsoft][ODBC 驱动程序 管理器] 非法的游标状态“,我在程序中两次加载驱动程序与数据库进行连接和关闭,不会是这儿出了问题吧?
|
ResultSet rs=ps.executeQuery();
t1.setText(rs.getString("customerName"));
t2.setText(rs.getString("customerAge"));
t3.setText(rs.getString("customerAddress"));
t4.setText(rs.getString("customerEmail"));
t5.setText(rs.getString("customerPhone"));
cn.close();
我想代码应该是错在上面这些代码之中
你取结果集的数据时,能否保证结果集一定存在?能否保证结果集记录一定为1?还有能否保证你取字段的顺序是否是按照数据库表的顺序来取的?因为你使用的是数据源的方式,所以这一切都必须注意。
另外,取数据的时候,你必须添上(rs.next())才行,即改为:
ResultSet rs=ps.executeQuery();
if(rs.next()) {
t1.setText(rs.getString("customerName"));
t2.setText(rs.getString("customerAge"));
t3.setText(rs.getString("customerAddress"));
t4.setText(rs.getString("customerEmail"));
t5.setText(rs.getString("customerPhone"));
}
cn.close();
t1.setText(rs.getString("customerName"));
t2.setText(rs.getString("customerAge"));
t3.setText(rs.getString("customerAddress"));
t4.setText(rs.getString("customerEmail"));
t5.setText(rs.getString("customerPhone"));
cn.close();
我想代码应该是错在上面这些代码之中
你取结果集的数据时,能否保证结果集一定存在?能否保证结果集记录一定为1?还有能否保证你取字段的顺序是否是按照数据库表的顺序来取的?因为你使用的是数据源的方式,所以这一切都必须注意。
另外,取数据的时候,你必须添上(rs.next())才行,即改为:
ResultSet rs=ps.executeQuery();
if(rs.next()) {
t1.setText(rs.getString("customerName"));
t2.setText(rs.getString("customerAge"));
t3.setText(rs.getString("customerAddress"));
t4.setText(rs.getString("customerEmail"));
t5.setText(rs.getString("customerPhone"));
}
cn.close();
|
返回的ResultSet光标是指向第一条记录之前(第零条记录)的,要用next()方法使它指向第一条记录。
|
返回的ResultSet光标是指向第一条记录之前(第零条记录)的,要用next()方法使它指向第一条记录。
|
你是否设置了游标状态,可能是JDBC版本不支持!!!
|
你用的是桥,需要在你的控制面板(ODBC管理)中设置一个连接。
|
程序太长了,指出重点代码段