超出范围的日期时间错误从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();
我怎样才能抓住它?谢谢。
可以使用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
}