我有一个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();
我怎么能抓住它?感谢。
答案 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
}