0

在我的项目中,我想使用选择框将日期分别读取为日、月、年。使用的代码是

<%
     String value=null;
     String[] h=null;
      h=request.getParameterValues("qns[]");
     String expert=request.getParameter("expert");
     int sday=Integer.parseInt(request.getParameter("sday"));
     int smonth=Integer.parseInt(request.getParameter("smonth"));
     int syear=Integer.parseInt(request.getParameter("syear"));
     int eday=Integer.parseInt(request.getParameter("eday"));
     int emonth=Integer.parseInt(request.getParameter("emonth"));
     int eyear=Integer.parseInt(request.getParameter("eyear"));
     String start=syear+"-"+smonth+"-"+sday;
     String end=eyear+"-"+emonth+"-"+eday;    
   for(int i=0;i<h.length;i++)
      {
          s.savetask(h[1],expert,start,end);
      }
   %>

保存任务功能是

  public int savetask(String qnid,String userid,String start,String end)
  {
     int n=0;
     try{

         String sql="insert into task(user_id,question_id,start_date,end_date,status)values('"+qnid+"','"+userid+"','"+start+"','"+end+"',0";
         n = db.modifyingQueries(sql);
     }
     catch(Exception e){

     }
     return n;
 }

但它不是向表中插入值task 任务的表格式是

task_id      int (Auto increment)
user_id      int
question_id  int
start_date   date 
end_date     date
status       int
4

1 回答 1

0

首先,您的 sql 行无效。最后缺少括号。

   String sql="insert into task(user_id,question_id,start_date,end_date,status)values
                            ('"+qnid+"','"+userid+"','"+start+"','"+end+"',0");
                                                                            ^

另一个语法错误是最后不需要, 因为它是一个(在更新列结构后实现)"0int

如果您遇到更多异常,请提供堆栈跟踪。

更新(有助于解决问题的评论):

您要做的是在该行之后String sql = ...,PutSystem.out.println(sql)所以它会打印query控制台中的内容。选择该行并在您的数据库查询管理器上触发它。并查看是否有任何语法错误。

于 2013-08-28T18:54:41.007 回答