lyuaong 2011-10-11 14:02 采纳率: 0%
浏览 220
已采纳

在sql2005中遇到个问题很奇怪,想不通,请教哈

public List<ArrayLeave> findList(String datebaseName, String sql) {

    List<ArrayLeave> templist = new ArrayList<ArrayLeave>();
    // StringBuffer buffer = new StringBuffer();
    // buffer.append("select region.rIdcard, CONVERT(varchar(7), dimission.dDismissionTime, 23) as sd,regions.rid   from registerregion as region left join persons as person on (region.ridcard = person.pidcard)left join dimission as dimission on(region.ridcard = dimission.didcard)left join recruitment.dbo.region as regions on(region.rcityid = regions.rid)where  1=1 and region.ridcard like '%[_]%'    and regions.rid in(18) ");
    ResultSet rs = csd.getRSBySql(sql, datebaseName);
    try {
        while (rs.next()) {
            ArrayLeave a = new ArrayLeave();
            String sumLeave = rs.getString("sumLeave");
            String sd = rs.getString("sd");
            String rid = rs.getString("rid");
            a.setSumLeave(sumLeave);
            a.setSd(sd);
            a.setRid(rid);
            templist.add(a);

        }
    } catch (SQLException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    return templist;

}

上面那在DAO层里面对于rs结果集的封装,getRSBySql方法代码如下:
/**
* 根据sql语句查询结果集
*/
public ResultSet getRSBySql(String sql, String databaseName) {
if (sql != null && !sql.trim().equals("")) {
Connection con = null;
PreparedStatement ps = null;
ResultSet rs = null;

        try {
            con = ConnectionManager.getInstance().getConnection(
                    databaseName);
            ps = con.prepareStatement(sql);
            rs = ps.executeQuery();

        } catch (Exception e) {
            e.printStackTrace();
            log.error(e);
        }
        return rs;

    } else {
        return null;
    }
}

我写的sql语句如下:
[img]http://dl.iteye.com/upload/attachment/567920/b6a8e5ab-add8-3c33-ae8e-e49280b0721a.jpg[/img]
这条sql我少了个条件 就是时间,它得到的结果集 我能够 rs.next(),但下面这句 我多加了个条件 圈的到那条件就不能进入
rs.next()) ,我觉得十分奇怪 想不太通,希望大虾解析哈!谢谢了
[img]http://dl.iteye.com/upload/attachment/567926/4692d592-45a7-3eca-a586-b37b95aab853.jpg[/img]

  • 写回答

2条回答 默认 最新

  • aini3456 2011-10-11 15:26
    关注

    你的下面一个图,意思是在MSSQL的企业管理器中执行可以,但是放到程序中查询结果集为空
    如果没有exception的话,可能是在程序中写sql的时候漏掉了()之类的,你仔细查下

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥50 易语言把MYSQL数据库中的数据添加至组合框
  • ¥20 求数据集和代码#有偿答复
  • ¥15 关于下拉菜单选项关联的问题
  • ¥20 java-OJ-健康体检
  • ¥15 rs485的上拉下拉,不会对a-b<-200mv有影响吗,就是接受时,对判断逻辑0有影响吗
  • ¥15 使用phpstudy在云服务器上搭建个人网站
  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况