stmt和conn在try{}中,只能在这个{}内有效,在finally{}好象就没有作用了啊!你最好把stmt和conn放在外面定义!

解决方案 »

  1.   

    andrew830314() 
    thank you
    按你说的改了下可以了
      

  2.   

    关闭代码放在finally里应该没什么问题!
    这样的程序需要两个try,catch吗?
    建议你去掉一个试试?
      

  3.   

    各位帮我再看看这段分页显示吧..
    怎么他显示不出来呢!  <body>
       <%
    out.println("1");
        Statement stmt=null;
        Connection conn=null;
        ResultSet rs=null;
        String strSQL="";
        int totalrecord=0;
        int PageSize=3;
        int totalPage=0;
        int Page=0;
       try
       {
         Class.forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance();//装驱动
        }
       catch(ClassNotFoundException e)
       {
         out.println(e.getMessage());
        }
    out.println("1.5");
      try
      {
    out.println("1.6");
        conn=DriverManager.getConnection("jdbc:odbc:Jinsql");//创建连接
    out.println("1.7");
        stmt =conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);//创建执行实列
        //算出总行数
    out.println("1.71");
        strSQL="select count(*) as recordcount form Customer";
    out.println("1.72");
        rs=stmt.executeQuery(strSQL);//结果集
    out.println("1.73");
        if(rs.next())
         totalrecord=rs.getInt("recordcount");
    out.println("2");
        //输出记录
        strSQL="select * form Customer";
        rs=stmt.executeQuery(strSQL);
        if(totalrecord%PageSize==0)
          totalPage=totalrecord/PageSize;
        else
          totalPage=(int)Math.floor(totalrecord/PageSize)+1;
        if(totalPage==0)
          totalPage=1;
        if(request.getParameter("Page")==null||request.getParameter("Page").equals(""))
          Page=1;
       else
       try
       {
       Page=Integer.parseInt(request.getParameter("Page"));
       }
       catch(java.lang.NumberFormatException e)
       {
       Page=1;
       }
       if(Page<1) Page=1;  
       if(Page>totalPage)Page=totalPage;
       rs.absolute((Page-1)*PageSize+1);  
        out.print("<table border='1'>");
        for(int iPage=1;iPage<=PageSize;iPage++)
     {
         out.print("<tr><td>"+rs.getString("CustomerId")+"</td>");
         out.print("<td>"+rs.getString("PassWord")+"</td></tr>");
     if(!rs.next()) break;
     }
         out.print("</table>");
      }
      catch (SQLException sqlExc)
     {
       sqlExc.printStackTrace();
     }
      finally
       {
        stmt.close();
        conn.close();
        }
     %>
      </body>