StringBuffer sGetCategorySQL=new StringBuffer();
sGetCategorySQL.append("select category_cd,category_name from category");
sGetCategorySQL.append("order by category_cd");
rs=stmt.executeQuery(sGetCategorySQL.toString());
StringBuffer sCategoryBuffer=new StringBuffer();
if(rs.next())
{
sCategoryBuffer=sCategoryBuffer.append("'"+rs.getString(1));
sCategoryBuffer=sCategoryBuffer.append("','"+rs.getString(2)+"'");
while(rs.next())
{
sCategoryBuffer=sCategoryBuffer.append(",'"+rs.getString(1));
sCategoryBuffer=sCategoryBuffer.append("','"+rs.getString(2)+"'");
}
}
意思就是从数据库中查询出来category_cd和category_name然后排序,那是不是只有个while(rs.next())就行了,不用那个if(rs.next())行不行

解决方案 »

  1.   

    对,你的sql执行可能有问题,你把它打印出来,在查询分析器中执行下看看,order前面加一个空格,不然连一起了
      

  2.   

    我有以下问题:如果 某一不为空的 category_cd 对应的 category_name为空那么rs.getString(2) 是否会抛异常?如果是我,我会加上:if(StringUtils.isNotBlank()){}
      

  3.   

    你这样不行吧,只要调用了next()方法就是下一条了,所以这样的话你应该跳过了一条。
      

  4.   

    用if  的话如果有多条记录  只查处一条  不会打出所有的记录
    用while 是循环  当然打出所有匹配的查询结果了sGetCategorySQL.append("select category_cd,category_name from category"); 
    sGetCategorySQL.append("order by category_cd"); 你怎么那么麻烦呢  写在一起不就好了
      

  5.   

    改为 sGetCategorySQL.append("select category_cd,category_name from category order by category_cd");就可以了,就不报错了.