数据库里面一个类型为int 的列orderid
页面部分关键代码:
ResultSet rs_orderid=conn.executeQuery("select orderid,status from order_item where username='"+session.getAttribute("username")+"'  and  teaid='"+session.getAttribute("shangpin")+"' and number='"+number+"' and price='"+price+"' ");
int orderid=rs_orderid.getInt(1);
int status=rs_orderid.getInt(2);出现下面的错误:org.apache.jasper.JasperException: Exception in JSP: /page/memcenter/dingdan.jsp:238235: int rows=conn.executeUpdate(sql);
236: 
237: ResultSet rs_orderid=conn.executeQuery("select orderid,status from order_item where username='"+session.getAttribute("username")+"'  and  teaid='"+session.getAttribute("shangpin")+"' and number='"+number+"' and price='"+price+"' ");
238: int orderid=rs_orderid.getInt(1);
239: int status=rs_orderid.getInt(2);
240: %>
241:    <tr>
Stacktrace:
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:506)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:377)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
起 因 javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Value can not be converted to requested type.
org.apache.jasper.runtime.PageContextImpl.doHandlePageException(PageContextImpl.java:843)
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:776)
org.apache.jsp.page.memcenter.dingdan_jsp._jspService(dingdan_jsp.java:400)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:334)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:314)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:264)
javax.servlet.http.HttpServlet.service(HttpServlet.java:802)
大家帮我看下,该怎么改才是正确的??

解决方案 »

  1.   

    int status=rs_orderid.getInt(2);
    status  也为int类型吗
      

  2.   

    javax.servlet.ServletException: [Microsoft][SQLServer 2000 Driver for JDBC]Value can not be converted to requested type.
     和数据类型错误 自己好好看看
      

  3.   

    游标没下去   rs_orderid.next( );
      

  4.   

    数据类型错误
    int orderid=rs_orderid.getInt("orderid");
    int status=rs_orderid.getInt("status");
    (orderid,status对应数据库字段)
      

  5.   

    数据库里面的status 是smallint类型,为什么这个用int可以接,那个在数据库里面是Int类型的orderid就不行???我知道是类型错,错在哪啊?
      

  6.   

    怀疑你连接数据库代码有问题,  
         1 .  Class.forName( )
         2.  connection conn = DriverManager.getConnection()
          3. preparedstatement  ppstmt =   conn.prepareStatement(sql)
          4.ResultSet  rs =  ppstmt.executeQuery( )
          5. rs.next( ).        //要移动游标才能取到值
      

  7.   

    session.getAttribute("")取出来后要转换成相对应的类型的。
      

  8.   

         <% 
    connDB conn=new connDB();
    ResultSet rs_new=conn.executeQuery("select name,price from tea where id='"+session.getAttribute("shangpin")+"'");
    while(rs_new.next()){
    String name=rs_new.getString(1);
    float price=rs_new.getFloat(2);String n=request.getParameter("num");
    int number= Integer.parseInt(n) ;
    float all=price*number;
    String sql="insert into order_item ( username,teaid,number,price) Values('"+session.getAttribute("username")+"', '"+session.getAttribute("shangpin")+"' ,'"+number+"','"+price+"')";          
    int rows=conn.executeUpdate(sql);ResultSet rs_orderid=conn.executeQuery("select orderid,status from order_item where username='"+session.getAttribute("username")+"'  and  teaid='"+session.getAttribute("shangpin")+"' and number='"+number+"' and price='"+price+"' ");
    int orderid=rs_orderid.getInt(1);
    int status=rs_orderid.getInt(2);
    %>
      

  9.   

    while(rs_orderid.next()){
    int orderid=rs_orderid.getInt(1);
    int status=rs_orderid.getInt(2);
    }
      

  10.   

    数据库第一个字段是int类型吗?