2017-01-07 3 views
-5

私はデータベース にテーブル「ベビーケア」のレコードにアクセスしようとしています。しかし、私は実行していたときに、それは私はこのSQLServerExceptionを取得しています:

Exception :com.microsoft.sqlserver.jdbc.SQLServerException : The result set has no current row

Iをスロー「結果セットには、現在の行を持っていません」何をすべきか分かりません。ここ は私のコードです:

try 
    { 

     Connection con=Database.getconnection(); 
     PreparedStatement pts=con.prepareStatement("select * from babyname"); 

     ResultSet rs=pts.executeQuery(); 

     while(rs.next()){ 

      System.out.println("records are "+rs.getInt(1+rs.getString(2)+rs.getString(3)+rs.getInt(4)+rs.getString(5))); 
     pts.execute(); 
     } 
     rs.close(); 
+2

なぜ読み込みループ内に 'pts.execute();'がありますか? – GurV

+2

'rs.getInt(1')のカッコを閉じることもできます。あなたの現在の呼び出しは、あなたが思っていることをしないからです。 –

+0

閉じられていないかっこがあります。' rs.getInt(1) ' – Hiren

答えて

2

あなたが一度にexecuteQueryを呼び出し、ループ内で結果を読んだことがあります。 executeを呼び出す必要はありません。

try { 
     Connection con=Database.getconnection(); 
     PreparedStatement pts=con.prepareStatement("select * from babyname"); 

     ResultSet rs=pts.executeQuery(); 

     while(rs.next()){ 
      System.out.println("records are "+rs.getInt(1) +" "+rs.getString(2)+rs.getString(3)+rs.getInt(4)+rs.getString(5))); 
     } 
     rs.close(); 
    } 

また、上記で修正されたrs.getInt(1にタイプミスがありました。

+0

私のコードを修正しましたが、まだ例外があります – user7387526

+0

例外は何ですか?スタックトレースを投稿できますか? – GurV

関連する問題