2013-03-22 3 views
0

생년월일을 입력하고 datetime 형식의 데이터베이스로 데이터를 보내는 C# 창 응용 프로그램이 있습니다. 여기에 코드입니다 :범위를 벗어남 C#에서 SQL까지 Datetime 오류

DateTime dateOfBirth; 
try 
{ 
    dateOfBirth = new DateTime(int.Parse(textBox54.Text), int.Parse(textBox53.Text), int.Parse(textBox52.Text)); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("Invalid"); 
    return; 
} 

그것은 적절한 날짜 잘 작동하지만 내가 무작위로 내 응용 프로그램을 테스트하고 범위를 벗어나, 올해에 대한 VARCHAR 변환에서 날짜를 "234"을 기입 할 때 오류가 성명에서 발생이

cm.ExecuteNonQuery(); 

어떻게 잡을 수 있습니까? 감사.

+3

당신은이 링크에 관심이있을 수 있습니다. http://stackoverflow.com/questions/3310569/what-is-the-significance-of-1-1-1753-in-sql-server – Mixxiphoid

+0

try/catch 블록에서 ExecuteNonQuery를 래핑 해 보았습니까? –

+0

전체 코드를 표시하십시오. 그것을 데이터베이스에/어디로 전달하고 있습니까? – lahsrah

답변

0

당신은 DateTime.TryParseExact를 사용할 수 있습니다

업데이트 :

string inputDate = int.Parse(textBox54.Text)+"-"+int.Parse(textBox53.Text)+"-"+int.Parse(textBox52.Text); 
    DateTime dateOfBirth ; 

    var DateFormat = new[] { "dd/MM/yyyy", "yyyy-MM-dd" }; 
    if (DateTime.TryParseExact(inputDate, DateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out dateOfBirth)) 
    { 

     //Valid Date 
     //Call DB here 
    } 
    else 
    { 

     // Invalid Date 
    } 
+0

왜 'DateTime' 개체를 다시'DateTime' 개체로 파싱해야합니까? – Habib

+0

@ 하빕 당신이 옳습니다. 업데이트 된 답변. 이 메소드는 inputDate가 유효한 날짜인지 확인한 후 추가 처리에 사용할 수 있는지 여부를 먼저 확인합니다. –

+0

그것은 C#의 유효한 날짜이기 때문에 나는 "234"를 입력 할 때 여전히 오류를 잡을 수 없다. – AkariKamigishi

관련 문제