当我尝试更新日期字段的值时,我收到异常java.lang.illegalargumentexception
。我有一个SQL数据库,它有2个时间戳字段格式(0000-00-00 00:00:00)。
这是我的HTML代码:
<%=stade%>=2014-01-19 21:43:20.0
<%=edate%>=2014-08-31 01:45:03.0
StartDate</span>
<input type="text" name="sdate" maxlength="25" size="25"id="demo2" value="<%=sdate%>"><a href="javascript:NewCal('demo2','ddmmmyyyy',true,24)"></a>
ExpireDate
<input type="Text" id="demo1" name="edate"maxlength="25" size="25" value="<%=edate%>"><a href="javascript:NewCal('demo1','ddmmmyyyy',true,24)"></a>
<
我希望如果我不在这些字段中进行任何更改,那么edade和sdate插入的实际值会另外更新值插入
updade.jsp
<%
String edate=request.getParameter("edate");
String sdate=request.getParameter("sdate");
try
{
String s1;
String s2;
Format formatter;
Date d2=new Date(sdate);
Date d1 = new Date(edate);
Date date = new Date();
formatter = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
s = formatter.format(date);
s1 = formatter.format(d1);
s2=formatter.format(d2);
out.println("\n"+s1);
out.println("\n"+s2);
psmnt= cn.prepareStatement("update Councel set StartDate=?,ExpireDate=? where CouncelRegNo=?");
psmnt.executeUpdate();
out.println("Student updated successfully");
}
catch(Exception e)
{
out.print("try not allowed"+e);
}
%>
答案 0 :(得分:3)
看看这段代码:
psmnt= cn.prepareStatement("update Councel set StartDate=?,ExpireDate=? where CouncelRegNo=?");
psmnt.executeUpdate();
您正在准备一个包含三个参数的声明,但不是设置其中任何一个。
此外,我建议不将时间戳视为文本 - 相反,它们应该是适当的时间戳/日期时间/数据库中的任何字段,您应该避免将它们视为文本。您执行的字符串转换越多,您将使其中一个变得更加混乱的风险。
你应该也避免使用已被弃用多年的Date(String)
构造函数。
哦,并且更喜欢在首次使用时声明变量,而不是事先声明所有内容,然后然后分配值......