我尝试下面的代码,我想在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());
}
}
没有错误,但组合框也包含空白项....
答案 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)
ResultSet
,则来自null
的 getString会返回NULL
。所以只需检查java null
的返回值,并且只检查它是否未添加到列表中
String rout1 = rs.getString("rout1");
if(rout1 != null) {
cmb_route.add(rout1);
}