从数据库中显示组合框中的空白项目

时间:2013-03-07 08:14:05

标签: java

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

我试过的代码:

 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());
             }
        }

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

2 个答案:

答案 0 :(得分: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);

           }  

答案 1 :(得分:0)

如果列的值为SQL ResultSet,则来自null

getString会返回NULL。所以只需检查java null的返回值,并且只检查它是否未添加到列表中

String rout1 = rs.getString("rout1");
if(rout1 != null) {
    cmb_route.add(rout1);
}