0

名前、連絡先、写真ID番号、仕事のプロフィールなどのユーザー情報を含む1つのフォームを作成しました。すべての情報を入力すると、データベースに保存されます。彼が 2 回目にログインすると、写真 ID 番号を入力した後、入力せずにすべての情報がフォームに表示されます。これにはキー型イベントを使用しています。このコードを試しましたが、次のように例外をスローしています

java.sql.SQLException: 結果セットの開始前

public void show()
{
   try
   {
        String id=photo_id_num.getText();
        System.out.println(""+id);          
        Connect c=new Connect();
        con=c.getConnection();
        Statement stmt=con.createStatement();
        String queryPhotoid = "select *  from tbl_visitor ";
        ResultSet rs1= stmt.executeQuery(queryPhotoid);    
              while (rs1.next()) 
              {
              if(id.equals(rs1.getString(6)))
              {
        // Read values using column name
            String name = rs1.getString(2);
            int contno = rs1.getInt(3);
                String orgname = rs1.getString(4);
                String jobpro = rs1.getString(5);
                String category = rs1.getString(7);
                String date = rs1.getString(8);
                int noofpeople = rs1.getInt(9);
                Blob image = rs1.getBlob(10);
                int extrapeople = rs1.getInt(11);

             System.out.println("Name:"+name+" Contact_no:"+contno+"Org_Name:"+orgname+" Job_profile:"+jobpro+"Category:"+category+"Date:"+date+"No_Of_People:"+noofpeople+"image:"+image+"Having extra people:"+extrapeople);
          }
              }
    }
    catch (SQLException sqlEx)
    {
         sqlEx.printStackTrace();
    }
}
4

1 に答える 1

1

結果セットをフェッチするとき、カーソルは最初のレコードの前にあるため、 を実行してカーソルを最初のレコードに移動する必要がありますresultSet.next()。ここでは、カーソルを配置する前に読んでいます

System.out.println("ranu"+rs1.getString(6));  
while (rs1.next());

したがって、最初に行う必要がrs.next()あるのは、レコードを読み取ることができるのはあなただけです

なので以下のようにします

ResultSet rs1= stmt.executeQuery(queryPhotoid);    

while (rs1.next())  {

  System.out.println("ranu"+rs1.getString(6));  
  if(id.equals(rs1.getString(6)))
  {
  // blah blah..
  }
//blah
}
于 2012-05-31T09:37:47.060 に答える