----------------解决方案--------------------------------------------------------
用ODBC数据源的话,是很容易出这个异常的
所以,最好还是用JDBC直连的方式来连接数据库
----------------解决方案--------------------------------------------------------
哎 不会 我是照着书做的 书上就介绍了用JDBC-ODBC桥来连数据源
----------------解决方案--------------------------------------------------------
JDBC-ODBC确实会出问题
也就是说你取列的只能,只能从前面取到后面,不能从后面取到前面
比如,有一张表如下:
id name sex address
你可以以这个顺序来取
rs.getInt("id");
rs.getString("sex");
rs.getString("address");
但是你这样取就会报错
rs.getString("sex);
rs.getInt("id");
因为你先取了第二列再取第一列,这样就会出异常了
如果你用的是JDBC直连的话,就不会出错了,不信你可以试一下
----------------解决方案--------------------------------------------------------
我就用一次GET也是说无效的游标 但是我知道那个ResualtSet对象中肯定是有元素的
----------------解决方案--------------------------------------------------------
,搞不清了
----------------解决方案--------------------------------------------------------
因为是用对象的next()方法的时候返回的是true 但是一用它的getString就说无效游标 那个字段是CHAR的呀
----------------解决方案--------------------------------------------------------
我就用一次GET也是说无效的游标 但是我知道那个ResualtSet对象中肯定是有元素的
把你的代码帖出来
----------------解决方案--------------------------------------------------------
public void actionPerformed(ActionEvent evt) {
Object source = evt.getSource();
if (source == b_sure) {
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
System.out.println("成功加载JDBC-ODBC驱动程序!");
}
catch (ClassNotFoundException ex) {
System.out.println("加载JDBC-ODBC驱动程序失败!");
System.out.println(ex.getMessage());
return;
}
try {
Connection connection = DriverManager.getConnection("jdbc:odbc:jxzlgl", "sa", "123456");
Statement st = connection.createStatement();
String query = "SELECT * FROM 用户表 WHERE 用户名='"+tf_id.getText()+"'";
ResultSet rs = st.executeQuery(query);
System.out.println(rs.getString("2"));
/*if (rs.next()) {
if (p_key.getText() != rs.getString(2)) {
JOptionPane.showMessageDialog(null, "密码错误!", "错误:", JOptionPane.ERROR_MESSAGE);
}
else {
JOptionPane.showMessageDialog(null, "登陆成功", "!", JOptionPane.WARNING_MESSAGE);
}
}
else {
JOptionPane.showMessageDialog(null, "用户不存在!", "错误:", JOptionPane.ERROR_MESSAGE);
}*/
rs.close();
st.close();
connection.close();
}
catch(SQLException ec) {
System.out.println("查询数据库失败!");
System.out.println("SQLException:"+ec.getMessage());
}
}
}
----------------解决方案--------------------------------------------------------
先看看数据库里面是不是有数据嘛!
----------------解决方案--------------------------------------------------------