2013-06-27 53 views
2

我想從數據庫中檢索數據並顯示到。我是在Netbeans的工作的JLabel,我已經這樣做了..從數據庫中檢索到的JLabel

private void showActionPerformed(java.awt.event.ActionEvent evt) {          
    int row=jTable1.getSelectedRow(); 
    int column=jTable1.getSelectedColumn(); 
    String str=(String)jTable1.getValueAt(row,column); 

    try{ 
    rs=stat.executeQuery("select * from table3 where e_id='"+str+"'"); 

    jLabel1.setText(rs.getString("name")); 
    jLabel12.setText(rs.getString("e_id")); 

    } 
    catch(Exception e) 
    {System.out.print(e);} 


} 

它無法顯示任何內容。 我在記事本和它的工作正常,但不是在netbeans中試過。
任何幫助表示讚賞。

+0

u得到什麼異常的PreparedStatement /? – MaVRoSCy

回答

3

你應該得到列信息之前調用ResultSet#next()

rs=stat.executeQuery("select * from table3 where e_id='"+str+"'"); 
    while(rs.next()){ 
    jLabel1.setText(rs.getString("name")); 
    jLabel12.setText(rs.getString("e_id")); 
    } 

我強烈建議你使用,而不是簡單的語句這將使你的代碼容易出現SQL注入

+0

謝謝你現在的工作。但爲什麼我的代碼在沒有rs.next()的記事本中工作? – Ani

+0

@ani不用客氣。我不認爲它會在沒有調用ResultSet#next()的情況下工作。 – PermGenError

0

試試這個

while (rs1.next()) { 
    k= new Object[8][8]; 
    k[i][0] = rs1.getString("st_id"); 
    k[i][1] = rs1.getString("name"); 
    k[i][2] = rs1.getString("adm_year"); 
    k[i][3] = rs1.getString("crrt_year"); 
    k[i][4] = rs1.getString("mcode"); 
    k[i][5] = rs1.getString("grade"); 
    k[i][6] = rs1.getString("credit"); 
    k[i][7] = rs1.getString("attempt"); 
    System.out.println(k[i][4]); 
    i++; 

    } 
    jTable1.setModel(new DefaultTableModel(k, new String[]{"Student ID", "Name", "Admmission Year", "Current Year", "Modules", "Grade", "Credit", "Attempt"}))