ResultSet rs = null;
.
.
.
for(int i=1;i<12;i++)
    {
      try
      {
        rs = sqlc.getRs("select count(请假编号) from leave where 请假日期 between #2005-"+i+"-1# and #2005-"+(i+1)+"-1#");    
      }
      catch(Exception err){err.printStackTrace();}
    }在SQL语句中用聚合函数返回的查询结果是一个数,那请问我在JAVA中如何将这个数转换成int型的数据呢???

解决方案 »

  1.   

    public ResultSet getRs(String sql) 
      {
       ResultSet rs = null;
        Statement st=null;
        try
        {
          st = cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
          return rs = st.executeQuery(sql);
        }
        catch(Exception gre)
        {
          System.out.println(gre.getMessage());
          return null;
        }
        finally
        {st = null;}
      }rs.getInt()这个方法我试了,不好用,因为聚合函数的返回值是重新生成了一个无名字段,只有一个数字。
      

  2.   

    select count(请假编号) as ghy from rs.getInt("ghy");使用字段别名
      

  3.   

    rs = sqlc.getRs("select count(请假编号) as abc from leave where 请假日期 between #2005-"+i+"-1# and #2005-"+(i+1)+"-1#");
            System.out.println (rs.getInt("abc"));这么写了,还是报错!
      

  4.   

    at JavaDesign.CountPanel.actionPerformed(JavaDesign.java:1022)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
    86)
            at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
    ctButton.java:1839)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
    .java:420)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258
    )
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
    istener.java:245)
            at java.awt.Component.processMouseEvent(Component.java:5100)
            at java.awt.Component.processEvent(Component.java:4897)
            at java.awt.Container.processEvent(Container.java:1569)
            at java.awt.Component.dispatchEventImpl(Component.java:3615)
            at java.awt.Container.dispatchEventImpl(Container.java:1627)
            at java.awt.Component.dispatchEvent(Component.java:3477)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483
    )
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
            at java.awt.Container.dispatchEventImpl(Container.java:1613)
            at java.awt.Window.dispatchEventImpl(Window.java:1606)
            at java.awt.Component.dispatchEvent(Component.java:3477)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
    read.java:201)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:151)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)
    java.sql.SQLException: [Microsoft][ODBC 驱动程序管理器] 无效的游标状态
            at sun.jdbc.odbc.JdbcOdbc.createSQLException(JdbcOdbc.java:6958)
            at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7115)
            at sun.jdbc.odbc.JdbcOdbc.SQLGetDataInteger(JdbcOdbc.java:3812)
            at sun.jdbc.odbc.JdbcOdbcResultSet.getDataInteger(JdbcOdbcResultSet.java
    :5642)
            at sun.jdbc.odbc.JdbcOdbcResultSet.getInt(JdbcOdbcResultSet.java:585)
            at sun.jdbc.odbc.JdbcOdbcResultSet.getInt(JdbcOdbcResultSet.java:603)
            at JavaDesign.CountPanel.Counts(JavaDesign.java:1034)
            at JavaDesign.CountPanel.actionPerformed(JavaDesign.java:1022)
            at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:17
    86)
            at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(Abstra
    ctButton.java:1839)
            at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel
    .java:420)
            at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258
    )
            at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonL
    istener.java:245)
            at java.awt.Component.processMouseEvent(Component.java:5100)
            at java.awt.Component.processEvent(Component.java:4897)
            at java.awt.Container.processEvent(Container.java:1569)
            at java.awt.Component.dispatchEventImpl(Component.java:3615)
            at java.awt.Container.dispatchEventImpl(Container.java:1627)
            at java.awt.Component.dispatchEvent(Component.java:3477)
            at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483
    )
            at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
            at java.awt.Container.dispatchEventImpl(Container.java:1613)
            at java.awt.Window.dispatchEventImpl(Window.java:1606)
            at java.awt.Component.dispatchEvent(Component.java:3477)
            at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
            at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchTh
    read.java:201)
            at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThre
    ad.java:151)
            at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)        at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)下面还有
      

  5.   

    rs = sqlc.getRs("select count(请假编号) as abc from leave where 请假日期 between #2005-"+i+"-1# and #2005-"+(i+1)+"-1#");
    String bianhao=rs.getString(1);
    int bh=String.parseInt(bianhao);
      

  6.   

    to jgsfy(阿庙) 这么写还是不对啊!p. s:int bh=Integer.parseInt(bianhao);
      

  7.   

    对不起,是这样的
    rs = sqlc.getRs("select count(请假编号) as abc from leave where 请假日期 between #2005-"+i+"-1# and #2005-"+(i+1)+"-1#");
    String bianhao=rs.getString(1);
    int bh=Integer.parseInt(bianhao);
      

  8.   

    (Object)rs以后的结果
    sun.jdbc.odbc.JdbcOdbcResultSet@e33e18
    sun.jdbc.odbc.JdbcOdbcResultSet@15f1f9c
    sun.jdbc.odbc.JdbcOdbcResultSet@10ca208
    sun.jdbc.odbc.JdbcOdbcResultSet@1b66b06
    sun.jdbc.odbc.JdbcOdbcResultSet@ca3783
    sun.jdbc.odbc.JdbcOdbcResultSet@7124af
    sun.jdbc.odbc.JdbcOdbcResultSet@1c3e9ba
    sun.jdbc.odbc.JdbcOdbcResultSet@c72243
    sun.jdbc.odbc.JdbcOdbcResultSet@1b994de
    sun.jdbc.odbc.JdbcOdbcResultSet@1217e67
    sun.jdbc.odbc.JdbcOdbcResultSet@128edf2(String)rs报错!
      

  9.   

    rs = sqlc.getRs("select count(请假编号) as abc from leave where 请假日期 between #2005-"+i+"-1# and #2005-"+(i+1)+"-1#");
    if(rs.next())  //刚才没有把指针下移
    {
    String bianhao=rs.getString(1);
    int bh=Integer.parseInt(bianhao);
    }
      

  10.   

    rs = sqlc.getRs("select count(请假编号) abc from leave where 请假日期 between #2005-"+i+"-1# and #2005-"+(i+1)+"-1#");
    if(rs.next()) {
    int bh=rs.getInt("abc");//或者 int bh=rs.getInt(1);//
    }绝对OK