2012-05-31 22 views
0

我已经创建了一个表单,其中包含用户的姓名,联系电话号码,照片ID号码,工作资料等信息。一旦输入所有信息,它就会存储在数据库中。当他第二次登录时,在输入照片身份证号码后,全部信息应显示在表格上,无需输入。我正在使用键入事件。我曾尝试这个代码,但它抛出异常,因为java:输入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(); 
    } 
} 
+0

什么是你的问题?为了更快地获得更好的帮助,请发布[SSCCE](http://sscce.org/)。 –

+0

'catch(SQLException sqlEx){..'应该是'catch(SQLException sqlEx) {sqlEx.printStackTrace(); ..' –

回答

1

当您将获取游标结果集是前第一记录,所以你需要在你的情况,你将光标定位

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

所以之前阅读执行resultSet.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 
} 
+0

我根据你的建议尝试过,bur还是一样的抛出。 – Anjali

+0

更新问题中的更新代码和异常堆栈跟踪请 –

+0

在调用rs1.next()后,您还必须将代码“if(id.equals(rs1.getString(6)))''放入。 – Logan