0

我对 Java 很陌生,我正在尝试完成一项简单的任务,即从表中读取数据并将其传递给表单变量。但是,我遇到了这个令人沮丧的异常:

游标状态无效 - 没有当前行;

我尝试了一切,但仍然没有运气。我调查了谷歌,但我没有得到可以解决这个问题的答案。希望大家能帮忙。

public class MainFrame extends javax.swing.JFrame {

   Connection con;
   Statement stm;
   ResultSet rs;

    /**
     * Creates new form MainFrame
     */
    public MainFrame() {
         initComponents();
         DoConnect();   
    }

    public void DoConnect() {
       try{
            String host = "jdbc:derby:studentinfo;create=true";
            String uname = "sudeep";
            String upass = "sunny";

            con = DriverManager.getConnection(host, uname, upass);
            stm = con.createStatement();
            String sql = "SELECT * FROM APP.STUDENTID";
            rs = stm.executeQuery(sql);

            System.out.println("Query executed");

           if(rs.next())
           {      
              // This is where the exception is occurring!!!!!!

              String id = rs.getString("STUDENTID");
              String first = rs.getString("FIRST_NAME");
              String second = rs.getString("SECOND_NAME");

              ID.setText(id); 
              fnam1.setText(first);
              lnam.setText(second); 

              System.out.println(id);
           }          
       } 

       catch ( SQLException err) {
           JOptionPane.showMessageDialog(MainFrame.this, err.getMessage()); 
           System.out.println("ERROR GETCONNECTION");}
       }
   }

这是程序运行生成的跟踪:[EL Info]:2013-09-03 21:14:15.732--ServerSession(552364977)--EclipseLink,版本:Eclipse Persistence Services - 2.5.0.v20130507-3faac2b [EL Info]:连接:2013-09-03 21:14:16.299--ServerSession(552364977)--file:/Users/vasundhra_sudeep/NetBeansProjects/StudentForm/build/classes/_jdbc:derby:studentinfo;create=truePU登录成功java .sql.SQLException:游标状态无效 - 没有当前行。游标状态无效 - 没有当前行。在 org.apache.derby.impl.jdbc.SQLExceptionFactory40.getSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) at org.apache.derby.impl.jdbc.Util.newEmbedSQLException (未知来源)在 org.apache.derby.impl.jdbc.EmbedConnection 的 org.apache.derby.impl.jdbc.Util.generateCsSQLException(未知来源)。EventQueue$2.run(EventQueue.java:674) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86) at java.awt.EventQueue.dispatchEvent(EventQueue. java:685) 在 java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296) 在 java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) 在 java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) 在java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122) 原因:java.sql .SQLException:游标状态无效 - 没有当前行。在 org.apache.derby.impl.jdbc。

4

1 回答 1

0

很可能APP.STUDENTID里面没有数据。将至少一条数据记录(也就是行)插入到该表中,再次运行您的程序,并查看是否发生相同的异常。

于 2013-09-03T03:05:04.460 回答