2014-09-26 89 views
0

当我运行此代码时,为什么在选择时获取最后添加的记录,而不是我选择的框中的项目?SQL select不会显示所选项目

String subj = null; 
String sec = null; 
String fac = null; 

try { 
    String tmp=(String) secCombo.getSelectedItem(); 
    String sql="select faculty,section,subject from facload where section=?"; 
    pst=(PreparedStatement) conn.prepareStatement(sql); 
    pst.setString(1,tmp); 
    rs=pst.executeQuery(); 
    while(rs.next()){ 
     sec = rs.getString("section"); 
     subj = rs.getString("subject"); 
     fac = rs.getString("faculty"); 
    } 
} catch(Exception e){ 
    JOptionPane.showMessageDialog(null, e); 
} 

JOptionPane.showMessageDialog(null, "prof " +fac + "\n" + "subject " + subj); 
if (subCombo1.getSelectedItem().equals(fac) && subCombo.getSelectedItem().equals(subj)) { 
    JOptionPane.showMessageDialog(null, "lalalala"); 
} 

回答

0

这里:

while(rs.next()){ 
    sec = rs.getString("section"); 
    subj = rs.getString("subject"); 
    fac = rs.getString("faculty"); 
} 

你在你的循环一次又一次地分配相同的变量。循环结束后,它们具有在上次迭代中设置的任何值。

+0

先生我可以做些什么来解决这个问题? – Aural 2014-09-26 22:14:29

+0

取决于。你的查询只应该返回一个结果吗?如果是这样,也许它不够具体。 – khelwood 2014-09-26 22:16:21

+0

是的,先生只有一个结果,但我需要的结果是我在我的组合框中选择的结果。所以我不能再次添加,如果他们都是相同的 – Aural 2014-09-26 22:21:52