把sql语句在数据库中执行一下,看看那sss这一列是否有值

解决方案 »

  1.   

    有值可以显示出来,下面还有代码,是获取整条纪录的值的,getString(i);//遍历字段取值
      

  2.   

    代码在另一台机器上,大概是这样,先在rs中取出一个字段的信息,在将rs中整行信息放入vector中
      

  3.   

    rs=p.executeQuery("SELECT * FROM school WHERE "+nr+tj+"'"+z+"'");
    rs.next();
    ……
    Vector rows = new Vector();
    ……
             float j=0;         do {
                j=j+rs.getFloat("交费金额");
                rows.addElement( getNextRow( rs, rsmd ) );
             } while ( rs.next() );
    ……
    private Vector getNextRow( ResultSet rs,
                                  ResultSetMetaData rsmd )
           throws SQLException
       {
          Vector currentRow = new Vector();
          for ( int i = 1; i <= rsmd.getColumnCount(); ++i )
             currentRow.addElement( rs.getString( i ) );
          //返回一条记录
          return currentRow;
       }
      

  4.   

    你用中文做字段名吗?
    把select * 换成 select 交费金额...
    然后用getFloat(1)试试吧,不知道是不是这个原因
      

  5.   

    不行,还是:“no data found”
      

  6.   

    exception stack trace贴出来
    另外,不要用中文做数据库的column name。
      

  7.   

    java.sql.SQLException: No data found
    at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:6212)
    at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3266)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5377)
    at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:320)
    at first.select.getNextRow(select.java:154)
    at first.select.displayResultSet(select.java:128)
    at first.select.access$0(select.java:18)
    at first.select$1.actionPerformed(select.java:97)
    at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1450)
    at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1504)
    at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:378)
    at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:250)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:216)
    at java.awt.Component.processMouseEvent(Component.java:3717)
    at java.awt.Component.processEvent(Component.java:3546)
    at java.awt.Container.processEvent(Container.java:1164)
    at java.awt.Component.dispatchEventImpl(Component.java:2595)
    at java.awt.Container.dispatchEventImpl(Container.java:1213)
    at java.awt.Component.dispatchEvent(Component.java:2499)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:2451)
    at java.awt.LightweightDispatcher.processMouseEvent(Container.java:2216)
    at java.awt.LightweightDispatcher.dispatchEvent(Container.java:2125)
    at java.awt.Container.dispatchEventImpl(Container.java:1200)
    at java.awt.Window.dispatchEventImpl(Window.java:912)
    at java.awt.Component.dispatchEvent(Component.java:2499)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:319)
    at java.awt.EventDispatchThread.pumpOneEvent(EventDispatchThread.java:103)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:84)
    我觉得是j=j+rs.getFloat("交费金额");与rs.getString( i ) ;发生冲突
      

  8.   

    对了,所有字段类型都用getString(i)方法不行吧~
      

  9.   

    你既然有float,那么你自然就不全是String字段,而你用rsmd.getColumnCount()找到的是所有的字段数,String字段自然没有那么多,等i超过了实际数目,自然找不到数据了 no data found,
    是不是这样,我没有动手做,不确信,只是一个想法。