2012-05-31 20 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