<% 
String username=(String)session.getAttribute("username");
String sql="select * from UI where UN='"+username+"'";
ResultSet rs1=userchangebean1.executeQuery(sql);
if(rs.next()){
%>if(rs.next()){ 改为if(rs1.next()){

解决方案 »

  1.   

    最好把<%out.print(rs.getString(..));%>改为
    <%=rs.getString("RN")%>
    realname有中文时还要处理一下
      

  2.   

    RS与RS1只是笔误,我真正的源码中是统一用RS的,不知为何<%out.print(rs.getString(..));%>改为
    <%=rs.getString("RN")%>这样改呢?RS.GETSTRING不也对吗?
    请仁兄指点!!
      

  3.   

    <%out.print(rs.getString(..));%>改为<%=rs.getString("RN")%>
    书写简单,实质一样
      

  4.   

    各位大哥;我终于解决了。原因是sql语句的问题
    String sql="select * from UI where UN='"+username+"'";这一句在语法上
    没有任何错误,但是在jsp中你下面用到那个字段,就必须select那个字段,如
    <%out.print(rs.getString("RESUME"));%>在select的内容里就必须有resume这个字段,而不能用*代替,是不是很古怪!!
    我都没有想到!!大家还觉得有什么问题吗?是不是我的bean有问题,才导致这样!但是经测试没有任何问题。我的bean如下:
    package opendb;
    import java.sql.*;
    public class opendb{
    String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
    String sConnStr="jdbc:odbc:user";
    Connection conn=null;
    ResultSet rs=null;
    public opendb(){
    try{
    Class.forName(sDBDriver);
    }
    catch(java.lang.ClassNotFoundException e){
    System.err.println("opendb():"+e.getMessage());
    }
    }
    public ResultSet executeQuery(String sql){
    rs=null;
    try{
    conn=DriverManager.getConnection(sConnStr);
    Statement stmt=conn.createStatement();
    rs=stmt.executeQuery(sql);
    }
    catch(SQLException ex){
    System.err.println("aq.executeQuery"+ex.getMessage());
    }
    return rs;
    }
    }
    没有问题的话即刻结贴。
      

  5.   

    不应该是这样的,用select * 表所有列都被查询出来,还是你的程序的问题。