请教一个有关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查询语句中只会汇总出列的不同值,与聚合函数的返回值.
------解决方案--------------------我就不信了,你把查询出来的重复的代码发上来