0

我有一个 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;
}

它适用于正确的日期,但是当我随机测试我的应用程序并为年份填写“234”时,语句中出现 varchar 转换超出范围错误的日期时间

cm.ExecuteNonQuery();

我怎么能抓住它?谢谢。

4

1 回答 1

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
    }
于 2013-03-22T09:25:55.073 回答