哦,我还在javabean中
rs.last();
int rows=rs.getRow();
之后加了一句:
rs.first();还是不行!55555555555555我只有555555555555了。。

解决方案 »

  1.   

    rs=sql.executeQuery(sqls);
    rs.last();
    不知道这样还能不能获得rs,建议你用两次rs=sql.executeQuery(sqls);
    试试,第一次算出rows,第二次在取结果集
    rs=sql.executeQuery(sqls);
    int i=0;
    while(rs.next){
     shuzhu[i]=rs.getString("employee_no");
     i++;
    }
      

  2.   

    还有一个小问题,你的getShuzhu()方法返回的是一个数组,在页面里
    用out.print(sz.getShuzhu()+sz.getMessage());
    好像不能输出吧,print没有打印数组的功能吧
      

  3.   

    那在JSP页面中怎样输出数组呢????
      

  4.   

    用个for(int j=1;j<=rows;j++)
        {
          out.println(shuzhu[i]+"<br>");
         }
      

  5.   

    在class中定义一个put函数
    public String put( int i)
    {
       return shuzhu[i];
    }
    在jsp中:
    <% 
        String temp=new String();
        for(int i=1;i<=rows;i++)
       {
         temp=sz.put(i);
         out.print(temp+"<br>");
       }
    %>
      

  6.   

    for(int i=1;i<=rows;i++)
       {
         temp=sz.put(i);
         out.print(temp+"<br>");
       }
      

  7.   

    你这样试试,在你的bean里定义一个整形变量,让他的值等于你得到的rows,再定义一个
    public int getRows(){
      return ...
    }方法
    ,这样你就可以在jsp页面中定义一个新的数组,让它等于你的sz.getShuzhu(),然后用一个循环就可以输出你的数组了。
    比较麻烦,如果大家友好方法可以告诉我,谢谢
      

  8.   

    一.取值:
    public String[] getShuzhu()
    {   try{
    con=DriverManager.getConnection("jdbc:microsoft:sqlserver://ZSHNB007:1433;databaseName=invoice", "invoice", "invoicedbo");
    sql=con.createStatement();
    sqls="select employee_no,voted_num from votetable where region='"+region+"' order by voted_num desc";
    rs=sql.executeQuery(sqls);
    rs.last();
    int rows=rs.getRow();
    // String[] shuzhu=new String[rows];
             List shuzhu = new ArrayList(); while(rs.next) {
                 shuzhu.add(rs.getString("employee_no"));
             }
    con.close();
    message="ok";
    }catch(Exception e){message="no!";}
    return shuzhu.toArray(new String[0]);
    }二.jsp中取值:for(int j=1;j<=rows;j++)
        {
          out.println(shuzhu[i]+"<br>");
         }
      

  9.   

    输出null是因为你此时的游标指在最后一位,所以取不出来值。在String[] shuzhu=new String[rows];后面加上rs.beforeFirst();或者是rs.absoulte(1);
    但是你的这个程序还有一个问题,就是当你的sql语句找不到值的时候,你用rs.last()会报错的,所以你还要加一个if(rs.next())的判断才行。而且for循环那块用的好象也不太合理吧??建议你还是用while(rs.next())好一些。用for循环还是在分页的时候用的才多点,平时都是用while()好点。
    在jsp中打印出数组的值可以用下列代码:
    String a[]=new String(100);
    a=sz.getShuzu();
    for(int i=0;i<a.length();i++)
    {
       out.println(a[i]);
    }
      

  10.   

    我改成这样子了:Shuz.java
    package beans;
    import java.sql.*;
    import java.util.*;
    public class Shuz{
    String sqls,shu,message,region="8";
    Connection con;
    Statement sql;
    ResultSet rs;
    String[] shuzhu;
    public Shuz()
    {
       try{
    Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
    }
    catch(ClassNotFoundException e){}
    }public void setShuzhu(String[] a)
    {
    shuzhu=a;
    }public void setRegion(String r)
    {
    region=r;
    }public void setMessage(String m)
    {
    message=m;
    }
    public String getMessage()
    {
    return message;
    }public String[] getShuzhu()
    {   try{
    con=DriverManager.getConnection("jdbc:microsoft:sqlserver://ZSHNB007:1433;databaseName=invoice", "invoice", "invoicedbo");
    sql=con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
    sqls="select employee_no,voted_num from votetable where region='"+region+"' order by voted_num desc";
    rs=sql.executeQuery(sqls);
    int rows=0;
    if(rs.last()){ rows=rs.getRow();}
    String shuzhu[]=new String[rows];
    rs.beforeFirst();
    int i=0;
    while(rs.next()){shuzhu[i]=rs.getString("employee_no");i++;}
    con.close();
    message="ok";
    }catch(Exception e){message="no!";}
    return shuzhu;
    }
    }
    jsp文件如下:<%@ page contentType="text/html;charset=GBK" %>
    <%@ page import="beans.*" %>
    <htmL>
    <body>
    <jsp:useBean id="sz" class="beans.Shuz" scope="page" />
    <% sz.setRegion("8") ;
    String[] a;
    String a[]=sz.getShuzhu();
    for (int i=0;i<a.length;i++){out.print(a[i]);}
    %>
    </body>
    </html>
    bean通过编译了,可jsp执行不了,又不报错,等半天,没反应。
    给看看吧,哥哥姐姐,弟弟妹妹们。
    5555555死了
      

  11.   

    jsp里面的
    String[] a;
    String a[]=sz.getShuzhu();
    改成:
    String[] a;
    a=sz.getShuzhu();
    另外<%@ page import="beans.*" %>好像没什么用吧。bean里面
    if(rs.last()){ rows=rs.getRow();}
    String shuzhu[]=new String[rows];//这一句应该写成:shuzhu=new String[rows];
    rs.beforeFirst();
    int i=0;
    while(rs.next()){shuzhu[i]=rs.getString("employee_no");i++;}
    我不敢保证你这么写还能得到结果集,我以前没这么用过,你最好在
    while(rs.next()){shuzhu[i]=rs.getString("employee_no");i++;}
    里面加上一句System.out.println(shuzhu[i]);看看能不能得到值
      

  12.   

    你程序不是很长,建议你每一行都加一条System.out.println();看一看程序到哪里出的错误。
      

  13.   

    把你的bean改成这样吧,尽量不要用ResultSet的last()和beforeFirst()那些方法。
    package beans;
    import java.sql.*;
    import java.util.*;
    public class Shuz {
        String sqls,shu,message,region="8";
        Connection con;
        Statement sql;
        ResultSet rs;
        String[] shuzhu;
        public Shuz() {
            try {
                Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver");
            }
            catch(ClassNotFoundException e){}
        }    public void setShuzhu(String[] a) {
            shuzhu=a;
        }    public void setRegion(String r) {
            region=r;
        }    public void setMessage(String m) {
            message=m;
        }
        public String getMessage() {
            return message;
        }    public String[] getShuzhu() {
            try {
                con = DriverManager.getConnection("jdbc:microsoft:sqlserver://ZSHNB007:1433;databaseName=invoice", "invoice", "invoicedbo");
                sql = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_READ_ONLY);
                sqls = "select employee_no,voted_num from votetable where region='"+region+"' order by voted_num desc";
                rs = sql.executeQuery(sqls);
                ArrayList list = new ArrayList();
                while(rs.next()) {
                    list.add(rs.getString("employee_no"));
                }
                con.close();
                String shuzhu[] = new String[list.size()];
                list.toArray(shuzhu);
                message = "ok";
            }
            catch(Exception e){message="no!";}
            return shuzhu;
        }
    }