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

本文关键字:SQL 错误 时间 范围 日期 | 更新日期: 2023-09-27 18:05:30

我有一个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转换的datetime超出范围的错误。
cm.ExecuteNonQuery();

我怎样才能抓住它?谢谢。

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

可以使用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
    }