Недопустимое состояние курсора — нет текущей строки

Я очень новичок в Java, и я пытаюсь выполнить одну простую задачу чтения данных из таблицы и передачи их в переменные формы. Однако я получаю это разочаровывающее исключение:

Недопустимое состояние курсора — нет текущей строки;

Я пробовал все, но все равно не повезло. Я заглянул в Google, но не получил ответа, который решит эту проблему. Надеюсь, вы, ребята, можете помочь.

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");}
       }
   }

Вероятно, в

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");}
       }
   }
нет данных. Вставьте хотя бы одну запись (или строку) данных в эту таблицу, снова запустите свою программу и посмотрите, возникает ли такое же исключение.


person user2741438    schedule 03.09.2013    source источник
comment
Спасибо за ответ, у меня есть две записи в таблице AAP.STUDENTID. Я создал записи вручную. Я вижу результаты, когда выполняю SQL-запрос.   -  person Java Devil    schedule 03.09.2013


Ответы (1)


Обновите свой вопрос, чтобы включить полную трассировку стека

person musical_coder    schedule 03.09.2013
comment
Вот трассировка, созданная при запуске программы: [EL Info]: 2013-09-03 21:14:15.732 --ServerSession(552364977) --EclipseLink, версия: Eclipse Persistence Services - 2.5.0.v20130507-3faac2b [EL Информация]: соединение: 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(неизвестный источник) в org.apache.derby.impl.jdbc.Util.newEmbedSQLException(неизвестный источник) в org.apache.derby.impl.jdbc.Util.newEmbedSQLException (Неизвестный источник) в org.apache.derby.impl.jdbc.Util.generateCsSQLException(Неизвестный источник) в org.apache.derby.impl.jdbc.EmbedConnection.newSQLException(Неизвестный источник) в org.apache.derby.impl.jdbc .ConnectionChild.newSQLException(неизвестный источник) в org.apache.derby.impl.jdbc.EmbedResultSet.checkOnRow(неизвестный источник) в org.apache.derby.impl.jdbc.EmbedResultSet.getColumnType(неизвестный источник) в org.apache.derby .impl.jdbc.EmbedResultSet.getString(неизвестный источник) в org.apache.derby.impl.jdbc.EmbedResultSet.getString(неизвестный источник) в studentform.MainFrame.DoConnect(MainFrame.java:57) в studentform.MainFrame.(MainFrame .java:35) в studentform.MainFrame$7.run(MainFrame.java:579) в java.awt.event.InvocationEvent.dispatch(Invocati onEvent.java:209) в java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715) в java.awt.EventQueue.access$400(EventQueue.java:82) в java.awt.EventQueue$2.run(EventQueue.java :676) в java.awt.EventQueue$2.run(EventQueue.java:674) в java.security.AccessController.doPrivileged(собственный метод) в java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86) в java. awt.EventQueue.dispatchEvent(EventQueue.java:685) в java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296) в java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) в java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:201) в java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) в java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) в java.awt.EventDispatchThread.run(EventDispatchThread.java: 122) Причина: java.sql. SQLException: Недопустимое состояние курсора — нет текущей строки. at org.apache.derby.impl.jdbc.SQLExceptionFactory.getSQLException(неизвестный источник) at org.apache.derby.impl.jdbc.SQLExceptionFactory40.wrapArgsForTransportAcrossDRDA(неизвестный источник) ... еще 27 УСПЕШНЫХ ПОСТРОЕНИЙ (общее время: 7 секунд) - person user2741438; 03.09.2013