-3

我有一个 sql 查询来选择数据整数

我想对这些数据进行测试,我测试第 10 列中的数据

如果我有 10 列,那么传递到 10--

我确实循环进入while

结果是正确的,但它重复了很多次

这是我的代码

int vl=10;
boolean found = false;
try {
    if (jComboBox6.getSelectedIndex()>-1){
        conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/"+getdb(), "", "");
        stmt = conn.createStatement();
        ResultSet res=stmt.executeQuery( "SELECT VLAN FROM tt ");                         
        while(res.next()) {
            for(vl=10;vl>1;vl--) {    
                if(Integer.parseInt(res.getString(1))==vl) {
                    System.out.print(vl);
                    found = true;
                    break;
                }
                if (!found) {
                    System.out.print("NO");
                    //found = false;
                    break;
                }
            }
        }
    res.close();
}
conn.close();            
} catch (SQLException ex) {
    Logger.getLogger(Etat_lieu.class.getName()).log(Level.SEVERE, null, ex);
}
4

2 回答 2

0

System.out.print("NO")

每次 for 循环中没有匹配项时都会打印此行。

于 2013-07-15T23:37:59.770 回答
0

更新

让我们简化问题。

boolean found = false;
while(res.next()) {
    int value = Integer.parseInt(res.getString(1));
    if (value == 10) {
        System.out.print(value);
        found = true;
    }
    [..do something else..]
 }
 if(!found) {
    System.out.print("NO");
 }

我认为不值得为简单的范围检查放置一个内部循环。

于 2013-07-15T23:39:45.597 回答