日期:2014-05-20  浏览次数:20743 次

请教一个有关JAVA连接数据库后取值的问题(付代码)
jc_bm表的格式:
部门   编号   大部门(dbm)
FAN     151       制造
HP       111       制造
ISO     311       品证
...    

我需要做一个下拉框,框中取(dbm)中不重复的所有值,用了distinct可仍然取出了所有的值(就是重复的也显示出来了),如下代码:

ke   =   new   Combo(comp,SWT.READ_ONLY);
addCombo(ke, "dbm ", "jc_bm ");

private   void   addCombo(Combo   combo,   String   l,   String   b)   {
ResultSet   rs   =   null;
String   sql   =   "select   distinct   "   +   l   +   "   from   "   +   b;
rs   =   db.executeQuery(sql);

try   {
while   (rs.next()){
combo.add(rs.getString(l));
System.out.println(rs.getString(l));
}

rs.close();
}   catch   (Exception   e)   {
e.printStackTrace();
}
}

请问为什么会出现这样的情况呢.有什么好的解决办法?

------解决方案--------------------
改SQL
------解决方案--------------------
好像是
凡是sql语句 全用“”包括起来(除了+号)!
String sql = "select distinct " + "dmb " + " from " + "jc_bm ";
我没试,你自己试一下吧!!
不对,不要笑话啊!!
我是一个菜鸟!!!
------解决方案--------------------
我测试了一下 已经去掉了重复数据了啊
------解决方案--------------------
关注...
执行sql后的结果应该就是过滤掉重复数据了的...
那么rs里面就不会存放重复的数据
头大
关注两天了...
------解决方案--------------------
结果没区别原理不一样,DISTINCT是从SELECT 语句的结果中除去重复的行,而在GROUP BY查询语句中只会汇总出列的不同值,与聚合函数的返回值.
------解决方案--------------------
我就不信了,你把查询出来的重复的代码发上来