解决方案 »

  1.   

    delete  from tb_board where board_id=?
      

  2.   


    /** 后台-添加版面 */
        public ActionForward addBoard(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response){
         HttpSession session=request.getSession();
         session.setAttribute("backMainPage","../board/boardAdd.jsp");     OpDB myOp=new OpDB();
        
         String validate=request.getParameter("validate");
         if(validate==null||validate.equals("")||!validate.equals("yes")){
         List classList=myOp.OpClassListShow();
         session.setAttribute("backClassList",classList);
         return mapping.findForward("result");
         }
         else{
         BoardForm boardform=(BoardForm)form;
         String classId=boardform.getBoardClassID();
         String boardName=Change.HTMLChange(boardform.getBoardName());
         String boardMaster=Change.HTMLChange(boardform.getBoardMaster());
         String boardPcard=Change.HTMLChange(boardform.getBoardPcard());
        
         ActionMessages messages=new ActionMessages();    
         String sql="select * from tb_board where board_name=? and board_classID=?";
         Object[] params={boardName,classId};
        
         if(myOp.OpBoardSingleShow(sql, params)!=null){
         System.out.println("添加版面- "+boardName+" 版面已经存在!");
         messages.add("adminOpR",new ActionMessage("luntan.admin.add.board.exist",boardName));
         }
         else{
         sql="select * from tb_user where user_name=?";
         Object[] params1={boardMaster};
        
         UserForm userform=myOp.OpUserSingleShow(sql, params1);
         if(userform==null){
         System.out.println("添加版面-"+boardMaster+" 版主不存在!");
         messages.add("adminOpR",new ActionMessage("luntan.admin.update.board.no.user",boardMaster));
         }
         else if(userform.getUserAble().equals("0")){
         System.out.println("添加版面-"+boardMaster+" 不是版主!");
         messages.add("adminOpR",new ActionMessage("luntan.admin.update.board.user.able",boardMaster));
         }
         else{
         sql="insert into tb_board values(?,?,?,?)";
         Object[] params2={classId,boardName,boardMaster,boardPcard};
        
         int i=myOp.OpUpdate(sql, params2);
         if(i<=0){
         System.out.println("添加版面失败!");
         messages.add("adminOpR",new ActionMessage("luntan.admin.add.board.E"));
         }
         else{
         boardform.clear();
         System.out.println("添加版面成功!");
         messages.add("adminOpR",new ActionMessage("luntan.admin.add.board.S"));
         }    
         }    
         }    
         saveErrors(request,messages);
         return mapping.findForward("result");
         }
        }
    错误时提示 插入项目数目不对 但都是4个啊
    调用DB类中doPstm方法时出错!
    java.sql.SQLException: Column count doesn't match value count at row 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1313)
    at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:874)
    at com.yxq.dao.DB.doPstm(DB.java:49)
    at com.yxq.dao.OpDB.OpUpdate(OpDB.java:373)
    at com.yxq.action.AdminAction.addBoard(AdminAction.java:405)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.yxq.filter.UserAccess.doFilter(UserAccess.java:31)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.yxq.filter.AdminAccess.doFilter(AdminAccess.java:33)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
    添加版面失败!
      

  3.   


    //你打印看下
    System.out.println(classId+"--------->classId");
    System.out.println(boardName+"--------->boardName"); 
    System.out.println(boardMaster+"--------->boardMaster");
    System.out.println(boardPcard+"--------->boardPcard");
      

  4.   

    select * from tb_board where board_name=? and board_classID=?
    select * from tb_user where user_name=?
    1--------->classId
    1111--------->boardName
    cy--------->boardMaster
    1111--------->boardPcard
    insert into tb_board values(?,?,?,?)
    调用DB类中doPstm方法时出错!
    java.sql.SQLException: Column count doesn't match value count at row 1
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:946)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2985)
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1631)
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1723)
    at com.mysql.jdbc.Connection.execSQL(Connection.java:3256)
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1313)
    at com.mysql.jdbc.PreparedStatement.execute(PreparedStatement.java:874)
    at com.yxq.dao.DB.doPstm(DB.java:49)
    at com.yxq.dao.OpDB.OpUpdate(OpDB.java:373)
    at com.yxq.action.AdminAction.addBoard(AdminAction.java:409)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
    at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
    at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
    at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
    at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
    at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.yxq.filter.UserAccess.doFilter(UserAccess.java:31)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at com.yxq.filter.AdminAccess.doFilter(AdminAccess.java:33)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:852)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
    at java.lang.Thread.run(Thread.java:662)
    添加版面失败!数据库里tb_board表 board_id 
                       board_classID
                       board_name
                       board_master
                       board_pcard
    要把主键 board_id加上吗
      

  5.   

    你的主键不是自动生成的 话,就要手动给他加上去。你可以在sql了测试下。
      

  6.   

    OK  主键设置成自动增值之后  还在在语句中 params[0]=null;  设主键为NULL  
      

  7.   

    请问楼主最后那那句  还在在语句中 params[0]=null;  设主键为NULL    具体是什么意思呀?我也是这个问题呀?