日期时间例外

时间:2014-12-02 23:19:00

标签: c# asp.net

我创建了一个注册页面,用户输入个人详细信息来创建帐户。但是我一直得到一个例外,我的控制验证应用程序根本不起作用!!

protected void btnSubmit_Click(object sender, EventArgs e)
{
    Registration _m = new Registration();
    DateTime dateOfBirth = DateTime.ParseExact(txtDOB.Text, "dd/MM/yyyy", null);
    lblMsg.Text = _m.Register(txtUser.Text, txtTitle.Text, txtPass.Text, 
    txtMidI.Text, txtSur.Text, txtCity.Text, txtPostCode.Text, txtxMobile.Text, 
    txtLandL.Text, txtEmail.Text, RBLMF.SelectedValue, dateOfBirth, 
    RBLYesNo.SelectedValue, txtSQ.Text, txtxAn.Text);
}

例外说:

 String was not recognized as a valid DateTime.

2 个答案:

答案 0 :(得分:3)

看起来您从字符串到日期的转换失败了。由于您从文本框中提取此数据,这意味着输入理论上可以是任何内容,因此您应始终对其进行验证。看看DateTime.TryParseExact。我还没有测试过这段代码,但大致你要做的就是改变

DateTime dateOfBirth = DateTime.ParseExact(txtDOB.Text, "dd/MM/yyyy", null);

DateTime dateOfBirth;
if (DateTime.TryParseExact(txtDOB.Text, "dd/MM/yyyy", null, DateTimeStyles.None, out dateOfBirth)))
{
  //Do your logic in here
  //.....
}
else
{
  //Show a message to the user that they didn't enter a valid date
  //.....
}

答案 1 :(得分:-2)

使用" d / M / yyyy"更灵活,因为它允许用户输入一位数的月和日。