0

私はプログラムを書く初心者で、課題のために検索レコード機能を作成しました。

public void searchRecord(){
             for(int ct = 0; ct< 1; ct++){
             System.out.println("Please insert student ID");
             System.out.print("Student ID: ");//prompt for student ID to search
             String data = k.nextLine().trim();
             String sql = "SELECT * FROM Students WHERE StudentID = '"+data+"'";
             try{
                 rs = st.executeQuery(sql);                 
             if(rs.next()){    
                 displayRecord();
                 rs.next();
                 showMenu();
             }
             else{
                 System.out.print("No record found. ");
                 ct--;
             }
             }catch (Exception ex){
                 System.out.println("Problem searching.");
             } 
             }

ただし、結果からデータを取得しようとすると、Invalid Cursor State. データを取得したい場合は、次のDisplay next recordメソッドを実行する必要があります。

try{
    if(rs.next()){
    displayRecord();
    }
else{
    rs.previous();
    System.out.println("No more records!");
}
}catch (Exception ex){
System.out.println("There is problem showing next data.");
}

検索レコードメソッドで「displayRecord」の後に「rs.next」を追加してみましたが解決しません。とにかくこれを解決する方法はありますか?

ちなみに私の表示記録方法:

public void displayRecord(){//get and display data from current row of record
        try{
                    String ID = rs.getString(1);
                    String fname = rs.getString(2);
                    String lname = rs.getString(3);
                    String conNo = rs.getString(4);
                    String mail = rs.getString(5);
                    String plate = rs.getString(6);
                    Date date = rs.getDate(7);
                    System.out.print("Student ID: "+ID+"\nName: "+fname+" "+lname+"\nCar Number: "+plate+"\nContact Number: 0"+conNo+"\nE-Mail Address: "+mail+"\nDate Registered: "+date);

        }catch (Exception ex){
            System.out.println(ex);
        }
}

ヘルプやアドバイスをいただければ幸いです。

4

1 に答える 1