java.sql.SQLException: [Microsoft] [Диспетчер драйверов ODBC] Недопустимое состояние курсора - PullRequest
3 голосов
/ 12 сентября 2011

Я создал простое приложение, которое сравнивает значение базы данных со значением текстового поля, но когда я выполняю проект, оно дает мне следующее Exception:

java.sql.SQLException: [Microsoft] [ODBC Driver Manager] Недопустимое состояние курсора

Это код, который я использую:

private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
   String dataSource ="testDb";
   String U="jdbc:odbc:"+dataSource;
   try {
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      Connection con=DriverManager.getConnection(U,"","");

      PreparedStatement s=con.prepareStatement("Select * from student");
      ResultSet s1=s.executeQuery();


      String textField;
      textField=jTextField1.getText();
      String database =s1.getString(1);
      if(textField.equals(database)) { 
         System.out.println("ok");
      } else {
         System.out.println("Not ok");
      }
   } catch(Exception ex) {
      System.out.println("THE EXCEPTION IS"+ex);
   }
}

В чем может быть причина, если это Exception?

Ответы [ 3 ]

5 голосов
/ 12 сентября 2011

Когда вы делаете s.executeQuery(), начальная позиция ResultSet равна ДО первой строки.

Вы должны сделать rs.next() дляпереместите его в первый ряд.

Заключите обработку ResultSet в if ( s1.next() ) {} блок

0 голосов
/ 12 сентября 2011

вам нужно сделать Resultset указатель на первую строку с помощью следующей функции, а затем сделать необходимое сравнение между значением базы данных и значением textField, я надеюсь, что это полезно.

0 голосов
/ 12 сентября 2011

Попробуй вот так ..

        ResultSet s1=s.executeQuery();
        String database=null;
        if(s1.next())
        {
          database =s1.getString(1);
        }
  • Когда s1.getString (1) используется без s1.next () .
  • s1 не указывает на первую строку. Вот почему исключение
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...