首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

初学者,求高手!使用prepareStatement,sql语句执行成功,控制台报错“'?' 附近有语法异常”

2012-04-18 
菜鸟,求高手!使用prepareStatement,sql语句执行成功,控制台报错“? 附近有语法错误”菜鸟一个,求高手解救!

菜鸟,求高手!使用prepareStatement,sql语句执行成功,控制台报错“'?' 附近有语法错误”
菜鸟一个,求高手解救! ~。~
使用prepareStatement,sql语句执行成功,数据库可以看到插入的数据,控制台打印语句:
INSERT INTO RouteCar (CarID,RouteID) VALUES ( ? ,'11') 
但是,在myeclipse控制台中总是报错:com.microsoft.sqlserver.jdbc.SQLServerException: '?' 附近有语法错误。
代码如下:

Java code
    public void doPost(HttpServletRequest request, HttpServletResponse response)            throws ServletException, IOException {            request.setCharacterEncoding("utf8");            int RouteID = Integer.parseInt(request.getParameter("RouteID"));            String[] ids =request.getParameterValues("items");// jsp页面传过来的参数,jsp中是checkbox得到的。            String BindState = "已绑定";                        for(int i = 0; i < ids.length; i++){                ConnectDB db=new ConnectDB();                db.Connect();                PreparedStatement pstmt1=null;                PreparedStatement pstmt2=null;                            String sql = "INSERT INTO RouteCar (CarID,RouteID) VALUES ( ? ,'" + RouteID + "') ";                String sql2 = "UPDATE CarInfo SET BindState ='" + BindState + "' where CarID = ? ";                String sql3 = "select * from RouteInfo where RouteID = '"+ RouteID + "'";                int rs = 0;                    try {                    pstmt1 = db.conn.prepareStatement(sql);                    pstmt1.setInt(1,Integer.parseInt(ids[i]));                                        System.out.println(ids[i]);                    System.out.println(sql);                                        rs = pstmt1.executeUpdate();                                        pstmt2 = db.conn.prepareStatement(sql2);                    pstmt2.setInt(1,Integer.parseInt(ids[i]));                    pstmt2.executeUpdate();                                        ResultSet rst=db.stmt.executeQuery(sql3);                    if(rst.next()){                        int RouteID2;                        String StartCity = rst.getString(2);                        String EndCity = rst.getString(3);                        String sql4 = "select * from RouteInfo where StartCity = '"+ EndCity + "' and EndCity = '"+ StartCity + "'";                        ResultSet rst2=db.stmt.executeQuery(sql4);                        if(rst2.next()){                            RouteID2 = rst2.getInt(1);                            db.stmt.executeUpdate("INSERT INTO RouteCar (RouteID,CarID)  VALUES ('" + RouteID2 + "',?) ");                        }                        response.setContentType("text/html;charset=UTF-8");                        PrintWriter  out = response.getWriter();                        out.print("<meta   http-equiv='Content-Type'   content='text/html;   charset=UTF-8'>");                           out.print("<script>");                        out.print("alert('添加成功!');");                        out.print("window.location.href='RouteManage/RouteCarsBinding.jsp'");                        out.print("</script>");                    }                }                 catch (SQLException e) {                    // TODO Auto-generated catch block                    e.printStackTrace();                    response.setContentType("text/html;charset=UTF-8");                    PrintWriter  out = response.getWriter();                    out.print("<meta   http-equiv='Content-Type'   content='text/html;   charset=UTF-8'>");                       out.print("<script>");                    out.print("alert('添加失败!');");                    out.print("window.location.href='RouteManage/RouteCarsBinding.jsp'");                    out.print("</script>");                }                finally{                    db.Close();                }            }    } 



[解决办法]
要全部set才行。
[解决办法]
探讨

要全部set才行。

[解决办法]
探讨

要全部set才行。

热点排行