id:自动编号  name:书名 price:单价 book_number:本数
现在我想把price和book_number插入到数据库中,但是不知道怎么做,下面是我插入到数据库的代码和要插入的数据,哪位好心的大侠能帮帮忙,谢谢!!
<% 
    Connection con; 
    Statement sql; 
    ResultSet rs; 
    try{ 
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
    } 
    catch(ClassNotFoundException e){out.print("类找不到!"); 
    out.print(e); 
    } 
    try{ 
    con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433; DatabaseName=book","sa","11011"); 
    sql=con.createStatement(); 
    if(request.getParameter("id")==null||(request.getParameter("id").trim()).length()==0) 
    {  }//如果没有要购买书,只是查看购物车中的商品  } 
    else{ 
    int id=Integer.parseInt(request.getParameter("id")); 
     out.print("<table border bordercolor=#ccc8888 align=center>"); 
    out.print("<tr ><h3><td colspan=8 align=center bgcolor=#0009999>下面是你选择的图书</td></h3></tr>"); 
    out.print("<tr>"); 
    out.print("<td width=100>"+"序号"); 
    out.print("<td width=100>"+"书名"); 
    out.print("<td width=100>"+"价格"); 
    out.print("<td width=100>"+"本数"); 
    out.print("</tr>"); 
    out.print("<tr>"); 
    out.print("<td>"+id+"</td>"); 
   rs=sql.executeQuery("select * from book where id="+id); 
    rs.next(); 
    out.print("<td>"+rs.getString("name")+"</td>"); 
    out.print("<td>"+rs.getFloat("price")+"</td>"); 
    out.print("<form action=addGoods.jsp method=post>"); 
    out.print("<td>"+"<input type=input name=book_number size=6>"); 
     out.print("<input type=hidden name=id value="+id+">"); 
      out.print("<input type=submit value=提交></td></form>"); 
      out.print("</tr>"); 
      out.print("</table>"); 
    } 
    float all=(float)0.0;//总价 
    out.print("<table border bordercolor=#ccc8888 align=center>"); 
    out.print("<tr><td colspan=8 align=center bgcolor=#0009999>购物车的书有:</td></tr>"); 
    out.print("<tr  align=center>"); 
    out.print("<td width=40>"+"序号"); 
    out.print("<td width=400>"+"书名"); 
    out.print("<td width=40>"+"数目"); 
    out.print("<td width=40>"+"单价"); 
    out.print("<td width=80>"+"总价"); 
    out.print("<td width=120>"+"删除"); 
    out.print("<td width=120>"+"减少"); 
    out.print("</tr>"); 
    Hashtable list=buycar.listgoods(); 
    Enumeration en=list.keys(); 
    while(en.hasMoreElements()){ 
    String good=(String)en.nextElement(); 
    byte[] b=good.getBytes("ISO-8859-1"); 
    good=new String(b); 
   out.print("<tr align=center>"); 
    out.print("<td>"+good+"</td>"); 
    rs=sql.executeQuery("select * from book where id="+good); 
    rs.next(); 
    out.print("<td>"+rs.getString("name")+"</td>"); 
     out.print("<td>"+list.get(good)+"</td>"); 
    out.print("<td>"+rs.getFloat("price")+"</td>"); 
     out.print("<td>"+rs.getFloat("price")*((Integer)list.get(good)).intValue()+"</td>"); 
     all+=rs.getFloat("price")*((Integer)list.get(good)).intValue(); 
       out.print("<td><a href='deleteGoods.jsp?id="+good+"'>从购物车中除去</a>"+"</td>"); 
    out.print("<form action=minusGoods.jsp method=post>"); 
    out.print("<td>"+"<input type=input name=book_number size=6>"); 
     //out.print("<td>"+"<input type=input name=price size=6>");
     out.print("<input type=hidden name=id value="+good+">"); 
      out.print("<input type=submit value=提交></td></form>"); 
      out.print("</tr>"); 
    } 
    out.print("<tr td align=center>"); 
    out.print("<td align=center>"+"总价"+"</td>"); 
    out.print("<td>"+all+"元"+"</td><td>&nbsp;</td><td>&nbsp;</td>");   
    out.print("</tr>"); 
    out.print("</table>");     
    con.close(); 
    } 
    catch(Exception ee){ 
    out.println("error!"); 
    out.print(ee.getMessage()); 
    } 
    %>《%
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); 
Connection con=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DatabaseName=book","sa", "11011"); 
Statement stmt=con.createStatement();
int id=Integer.parseInt(request.getParameter("id"));
    String book_id=request.getParameter("book_id");
    String book_number=(request.getParameter("book_number"));
    String price=request.getParameter("price"); 
    String sql="insert into orders(book_id,book_number,status,price)"
    +"values('"+id+"','"+book_number+"','"+0+"','"+price+"')";  
 stmt.executeUpdate(sql);  
%》

解决方案 »

  1.   

    而且id那里会提示java.lang.NumberFormatException: null
      

  2.   

    request.getParameter("id").trim()
    不可以这样写吧。
    当它为空时你再去trim()当然就会报你的那个错了。
      

  3.   

    select * from book where id="+good
      

  4.   

    这里的问题:
        String sql="insert into orders(book_id,book_number,status,price)"
        +"values('"+id+"','"+book_number+"','"+0+"','"+price+"')";  
    ID是number,单引号去掉,其他如果是number的单引号也去掉。
    ps:如果这段同一个跟上面的是同一个页面,请不要开两个连接。另外,jdbc直连时,connection/statement/rs用完就关,养成好习惯。
    values("+id+",'"+book_number+"','"+0+"','"+price+"')";  
      

  5.   

    噢,connection/statement/rs最好在finally里面关。
      

  6.   

    public class NumberFormatException
    extends IllegalArgumentException
    当应用程序试图将字符串转换成一种数值类型,但该字符串不能转换为适当格式时,抛出该异常。 int字段不用引号的
    你把你的sql语句在数据里面插入一条数据看看  只要在数据库里面的字段加单引号的  在java代码里面都要加引号