超出范围从C#到SQL的日期时间错误

时间:2013-03-22 09:18:21

标签: c# sql datetime

我有一个C#窗口应用程序来填写出生日期,并将数据发送到我的数据库,类型为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;
}

使用正确的日期工作正常,但是当我随机测试我的应用程序并为Year填写“234”时,语句中的varchar转换超出范围错误的日期时间

cm.ExecuteNonQuery();

我怎么能抓住它?感谢。

1 个答案:

答案 0 :(得分: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
    }