1

我尝试了下面的代码,其中我想在 WHERE 条件满足时获取所有值。我的 MS Access 数据库也包含 NULL 值,但是当我从数据库中获取项目到组合框中时,我不想在我的组合中使用 NULL 值......下面的代码也获取空值..

我试过的代码:

 if(e.getSource()==cmb_dest)
    {
             cmb_route.removeAll();

             try
            {
               Connection con;
               DriverManager.registerDriver(new sun.jdbc.odbc.JdbcOdbcDriver());
               Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
               con = DriverManager.getConnection("jdbc:odbc:dsnproj","","");
               Statement s = con.createStatement();
            // String qry="select c_id,p_category from product";
               String qry2="select * from trans_dest where 
               dest='"+cmb_dest.getSelectedItem()+"'";    
               System.out.println(qry2); 
               ResultSet rs=s.executeQuery(qry2);
             //ResultSet rs1=s1.executeQuery(qry2);
               while(rs.next())
               {                           
                       cmb_route.add(rs.getString("rout1"));
                       cmb_route.add(rs.getString("rout2"));
                       cmb_route.add(rs.getString("rout3"));
                       cmb_route.add(rs.getString("rout4"));
               }   
            }
             catch(Exception re)
             {
                 System.out.println(re.getMessage());
             }
        }

没有错误,但组合框也包含空白项目....

4

2 回答 2

2

你需要建立一个有 4 个字段的对象才能做你想做的事

           while(rs.next())
           {                           
                   cmb_route.add(rs.getString("rout1"));
                   cmb_route.add(rs.getString("rout2"));
                   cmb_route.add(rs.getString("rout3"));
                   cmb_route.add(rs.getString("rout4"));
           }

你需要这样做

           your_object vo = null;
           while(rs.next())
           {       
                   vo = new your_object();
                   vo.setRout1(rs.getString("rout1"));
                   vo.setRout2(rs.getString("rout2"));
                   vo.setRout3(rs.getString("rout3"));
                   vo.setRout4(rs.getString("rout4"));
                   cmb_route.add(vo);

           }  
于 2013-03-07T08:31:02.117 回答
0

如果列的值为 SQL ,则getString fromResultSet返回。所以只需检查返回的值对 java并且只有当它没有将它添加到你的列表中nullNULLnull

String rout1 = rs.getString("rout1");
if(rout1 != null) {
    cmb_route.add(rout1);
}
于 2013-03-07T08:36:17.477 回答