日期:2014-05-17  浏览次数:20735 次

jsp从数据库中取数出现错误~~
<%@page import ="java.sql.*"%>
<%@ page language="java" import="java.util.*" pageEncoding="GB2312"%>

<html>
  <body>
 <%
 Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver");
 Connection con =null;
  con=DriverManager.getConnection("jdbc:odbc:sum","","");
   
  Statement smt =con.createStatement();
 String id=new String(request.getParameter("user1").getBytes("ISO-8895-1"));
String sql ="select *from xuesheng where id='" +id +"'";
ResultSet rs=smt.executeQuery(sql);
 while(rs.next())
{
out.println("<tr><td>"+rs.getString(1)+"</td><td>"+rs.getString(2)+"</td><td>"+rs.getString(3)+"</td></tr>");
}
   
%>
</body>
</html>
数据库连接没问题就是取数的时候说 String id=new String(request.getParameter("user1").getBytes("ISO-8895-1"));不对!求高手解答


注:sum是数据库名,xuesheng是表名,user1是首页文本框的名字;用的是sql数据库,求高手解答~~

------解决方案--------------------
Java code

int id = Integer.parseInt(request.getParameter("id")

------解决方案--------------------
lz没有按照楼上的要求改,还有两个问题
第一,你传过来的user1参数 是不是数字?
第二,你数据库里面的id是不是数字类型


如果是数字类型,那么你改成下面的代码试试,看看什么结果再讨论
HTML code

<%@page import ="java.sql.*"%>
<%@ page language="java" import="java.util.*;" pageEncoding="GB2312"%>

<html>
  <body>
 <%
     Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver");
        Connection con =null;
        con=DriverManager.getConnection("jdbc:odbc:sum","","");

        Statement smt =con.createStatement();
        String id=(String)session.getAttribute("user1");
        int ID=0;
        try{
            ID=Integer.parseInt(id);
        }catch(Exception e){
            e.printStackTrace();
        }
        

        String sql ="select *from xuesheng where id='" +ID +"'";
        ResultSet rs=smt.executeQuery(sql);
        if(rs==null){
            out.println("未查到任何满足条件数据");
        }
        while(rs.next())
        {
            String nu =rs.getString(1);
            String na= rs.getString(2);
            String bj=rs.getString(3);

            out.println("nu");
            out.println("na");
            out.println("bj");

        }
 %>
</body>
</html>