是因为你定义的rs是局部变量
看看编译后的java文件就知道了

解决方案 »

  1.   

    你必须用一个循环去读取rs里面的数据,因为rs是一个数据集
    如:
      while(rs1.next()){
         out.println("姓名 = " + rs.getString("name") + " ");
      }
      

  2.   

    <%
    try{
     String sqlServerDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    Connection conn;conn=DriverManager.getConnection
    ("jdbc:microsoft:sqlserver://bemyfriend:1433;DatabaseName=javasqldemo"+";User=sa;Password=11");
    Class.forName("sqlServerDriver");
    Statement stmt = conn.createStatement();
    ResultSet rs;
    String str="select * from javasql1 where ID = 1";}catch(Exception ex){
    ex.printStackTrace();
    }rs = stmt.executeQuery(str);//把这句话放到这里就可以了.out.println("<p>成功建立javasqldemo的联接</p>");
    out.println("姓名 = " + rs.getString("name") + " ");
    %>
      

  3.   

    不行啊,如果我把rs = stmt.executeQuery(str);放到外面那么stmt它又找不到了,怎么办 啊?
      

  4.   

    rs = stmt.executeQuery(str);//把这句话放到这里就可以了.while(rs1.next())
     {
      out.println("姓名= "+rs1.getString("name")+" ");
     }应该这样改才可以啊.或者:
     if (rs1.Last())
       {
        out.println("姓名= "+rs1.getString("name")+" ");    }
    这样就只要有一条数据显示.
      

  5.   

    Statement stmt 定义一个全局变量啊.一定行的.
      

  6.   

    rs  定义到   try  catch  的外面
      

  7.   

    out.println("姓名 = " + rs.getString("name") + " ");放到while循环里面