제목 : 문자열이 유효한 DateTime으로 인식되지 않습니다.
글번호:
|
|
389
|
작성자:
|
|
윤민용
|
작성일:
|
|
2007/01/08 오전 9:37:00
|
조회수:
|
|
11168
|
부서별로 뛴것을 월별로 분기별로 통계내는 프로그램인데..
현재 두페이지가 에러를 내버리네요 워낙 초보다 보니 도움을 요청해봅니다
무식하게 소스올려서 죄송합니다 분석할정도의 능력이 잘안되네요ㅜ.ㅜ
'/run' 응용 프로그램에 서버 오류가 있습니다.
--------------------------------------------------------------------------------
설명: 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 스택 추적을 검토하여 발생한 오류
및 코드에서 오류가 발생한 위치에 대한 자세한 정보를 확인하십시오.
예외 정보: System.FormatException: 문자열이 유효한 DateTime으로 인식되지 않습니다.
소스 오류:
현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다. 아래의 예외 스택 추적을 사용하여 예
외의 원인 및 위치 정보를 확인할 수 있습니다.
스택 추적:
[FormatException: 문자열이 유효한 DateTime으로 인식되지 않습니다.]
System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles) +124
System.DateTime.Parse(String s) +27
Run.dayinput.GetSday(String date) in D:\service\run\dayinput.aspx.cs:403
Run.dayinput.Page_Load(Object sender, EventArgs e) in D:\service\run\dayinput.aspx.cs:68
System.Web.UI.Control.OnLoad(EventArgs e) +127
System.Web.UI.Control.LoadRecursive() +101
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean
includeStagesAfterAsyncPoint) +2588
--------------------------------------------------------------------------------
버전 정보: Microsoft .NET Framework 버전:2.0.50727.42; ASP.NET 버전:2.0.50727.42
에러나는 페이지의 각 각 68번째줄 403번째줄 내용입니다
68번째줄
// 분기기준 업데이트 부분
string Sday = this.GetSday(util.Date) ;
string Eday = this.GetEday(util.Date) ; <-이부분
403번째줄
private string GetEday(string date)
{
DateTime dt1 = DateTime.Parse(date); <-이부분
int nMon = (int)dt1.Month;
DateTime dt = DateTime.Now;
또다른 페이지
'/run' 응용 프로그램에 서버 오류가 있습니다.
--------------------------------------------------------------------------------
문자열이 유효한 DateTime으로 인식되지 않습니다.
설명: 현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 발생했습니다. 스택 추적을 검토하여 발생한 오류
및 코드에서 오류가 발생한 위치에 대한 자세한 정보를 확인하십시오.
예외 정보: System.FormatException: 문자열이 유효한 DateTime으로 인식되지 않습니다.
소스 오류:
현재 웹 요청을 실행하는 동안 처리되지 않은 예외가 생성되었습니다. 아래의 예외 스택 추적을 사용하여 예
외의 원인 및 위치 정보를 확인할 수 있습니다.
스택 추적:
[FormatException: 문자열이 유효한 DateTime으로 인식되지 않습니다.]
System.DateTimeParse.Parse(String s, DateTimeFormatInfo dtfi, DateTimeStyles styles) +124
System.DateTime.Parse(String s) +27
Run.dayinput.GetSday(String date) in D:\service\run\dayinput.aspx.cs:403
Run.dayinput.Page_Load(Object sender, EventArgs e) in D:\service\run\dayinput.aspx.cs:68
System.Web.UI.Control.OnLoad(EventArgs e) +127
System.Web.UI.Control.LoadRecursive() +101
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean
includeStagesAfterAsyncPoint) +2588
--------------------------------------------------------------------------------
버전 정보: Microsoft .NET Framework 버전:2.0.50727.42; ASP.NET 버전:2.0.50727.42
68번째줄
if(!IsPostBack)
{
string today = util.Date ;
stday.Text = GetSday(today); <-이부분
enday.Text = today.Substring(0,10) ;
startday = stday.Text.ToString() ;
endday = enday.Text.ToString() ;
}
else
{
string returnDay = null;
if(DropDownList1.SelectedValue.ToString()!="blank")
{
returnDay = SetDay(DropDownList1.SelectedValue) ;
int nGubun = 0;
nGubun = returnDay.IndexOf("/",0,returnDay.Length) ;
stday.Text = returnDay.Substring(0,10) ;
enday.Text = returnDay.Substring(11,10) ;
}
startday = stday.Text.ToString() ;
endday = enday.Text.ToString() ;
}
403번째줄
private string GetSday(string date)
{
DateTime dt1 = DateTime.Parse(date); <-이부분
int nMon = (int)dt1.Month;
DateTime dt = DateTime.Now;
if(nMon < 4)
return dt.Year.ToString() + "-" + "01-01";
else if(nMon <7)
return dt.Year.ToString() + "-" + "04-01";
else if(nMon < 10)
return dt.Year.ToString() + "-" + "07-01";
else
return dt.Year.ToString() + "-" + "10-01";
}
이 두페이지는 chung.cs를 불러오는데
using chung.DB;
using chung.Util;
거기서 날짜관련된 소스
///////////////////////////////////////////////
// 메소드명 : ToDate
// 인자설명 : get;
// 리턴형식 : string
// 사용목적 : 현재 날짜를 반환 : 2003-06-25
///////////////////////////////////////////////
public string Date
{
get
{
string datetime = DateTime.Now.ToString().Substring
(0,10) + " " + DateTime.Now.TimeOfDay.ToString().Substring(0,5);
return datetime;
}
}
////////////////////////////////////////////////
// 메소드명 : 월에 일수를 구해주는 함수
// 인자설명 : 스트링 값으로 "2004-10-10" 넣어주면
// 리턴 값 : 31일이라는 일수를 리턴한다.
////////////////////////////////////////////////
public int GetDays(string date)
{
DateTime dt = DateTime.Parse(date) ;
int year = int.Parse(dt.Year.ToString().ToString()) ;
int month = int.Parse(dt.Month.ToString()) ;
return DateTime.DaysInMonth(year,month) ;
}
}
}
}
과연 이부분이 맞는지 잘모르겠네요 죄송합니다
그래도 도움좀 주시면 감사하겠습니다..ㅠ.ㅠ
원인좀 알려주시고 설명좀 부탁드리겠습니다
현재 작업하는 시스템입니다
windows 2003 r2 64bit
sql 2005 server express
iis 6.0
|
Administrator
2007-01-09 오전 12:30:31
|
소스만 봐서는 모르겠구요...
아무래도 날짜값이 잘 못 입력이 된 듯 합니다.
예를들면, 2007-01-09 식으로 날짜가 입력되어야 하는데,
[20070109] 식으로 조금이라도 잘못된 정보가 입력된
경우에 위와 같은 에러메시지가 많이 나타납니다.
다시 한 번 소스를 살펴보시면서
정확한 날짜 값이 입력되는지 확인해 보시기 바랍니다.
|
|
|
|