2014-01-15 8 views
-2

날짜 필드의 값을 업데이트하려고하면 예외 java.lang.illegalargumentexception이 발생합니다. 두 타임 스탬프 필드 형식 (0000-00-00 00:00:00) SQL 데이터베이스가 있습니다. 여기 jdbc에서 값을 업데이트하는 방법은 무엇입니까?

내 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> 
       < 

내가이 분야에서 어떤 변경이 donot 경우 다음 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(); 
,

세 개의 매개 변수가있는 문을 준비 중이지만 설정은이 아닙니다.

또한 이 아닌은 타임 스탬프를 텍스트로 처리하는 대신 데이터베이스의 적절한 타임 스탬프/datetime/필드 여야하며 텍스트로 처리하지 않도록해야합니다. 더 많은 문자열 변환을 수행할수록 그 중 하나를 엉망으로 만들 위험이 커집니다.

Date(String) 생성자는 수년간 사용하지 않는 것이 좋습니다.

아, 그리고 처음 사용의 시점에서 변수를 선언하기보다는 앞까지 모든 것을하고 값을 할당 한 후 를 선언 선호 ...

관련 문제