我创建了一个注册页面,用户输入个人详细信息来创建帐户。但是我一直得到一个例外,我的控制验证应用程序根本不起作用!!
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.
答案 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"更灵活,因为它允许用户输入一位数的月和日。