upd好像不对,Stirng upd = "update Book set bookname=? where Book_ID=" + bookid;1,不用单引号,
2,注意最后where 的条件写法。

解决方案 »

  1.   

    String upd = "update Book set Book_Name=?, Author=?, Press_ID=?, Price=?, Our_Price=?, category_ID=?,  Book_Ename=?,  Translator=?,  Description=?, where Book_ID="+bookid+";";     PreparedStatement ps=con.prepareStatement(upd);
        ps.setString(1,bookname);
    ps.setString(2,author);
    ps.setInt(3,Pressid);
    ps.setFloat(4,price);
    ps.setDouble(5,ourprice);
    ps.setInt(6,categoryid);
    ps.setString(7,bookename);
    ps.setString(8,translator);
    ps.setString(9,description);
    ps.executeUpdate();我这样写也编译不过,郁闷。中间加不加逗号啊,我加了也不通过。
      

  2.   

    String upd = "update Book set Book_Name=?, Author=?, Press_ID=?, Price=?, Our_Price=?, category_ID=?,  Book_Ename=?,  Translator=?,  Description=?, where Book_ID="+bookid+";";   
    //<=========== Description=? where Book_ID="+bookid;  改动两个地方多了一个,和+";"
    建议你再去看看sql语法把
                               别的因为你没有列出异常信息,我也不好判断。
    我给你一个sql查错步骤把:
    1、用构建好的sql语句先在数据库中执行看有没有问题。"?"都用直接的数据代入,如:
    update Book set Book_Name=A1, Author=A2, Press_ID=A3, Price=A4, Our_Price=A5, category_ID=A6,  Book_Ename=A7,  Translator=A8,  Description=A9  where Book_ID="+Aid
    这里的Ax代表一条实际数据,如果这样可以在数据库里面执行正确。那么表示你构架的sql语句没错。
    2、检察ps.setType类型,可能有些数据要经过类型转换,确认一下。(这个在异常里面很容易判断)
    3外部sql环境错误,如.close没有关闭,conn没有申请什么的,就要你自己去查了如上
      

  3.   

    看来你的SQL语句还要补课呀。给你一个例子
    sql = "update book set book_name=?, author=? where book_id =" + bookid;
    注意,where 前面没有逗号了。
    还有一点需要注意,如果你的book_id是String类型(char,varchar等),那么应该这样:
    sql = "update book ....   where book_id ='" + bookid + "'"; //带上单引号.