我正在尝试验证两个出生日期文本框字段。如果该成员未输入这两个框,则会弹出一条错误消息,如“请输入有效的日期格式”
尝试保存而不输入文本框值时,它在Datetime DV
显示错误,如此。
字符串未被识别为有效的DateTime。
private void btnCTimetablessave_Click(object sender, EventArgs e)
{
string dob = tbStartDate.Text;
DateTime dv;
if (!DateTime.TryParse(dob, out dv))
{
MessageBox.Show("pls enter a valid start date");
return;
}
string format1 = dv.ToString("yyyy-MM-dd");
string dob2 = tbEndDate.Text;
DateTime dt2;
if (!DateTime.TryParse(dob2, out dt2))
{
MessageBox.Show("pls enter valid end date");
return;
}
string format2 = dt2.ToString("yyyy-MM-dd");
仍在datetime Dv
“字符串未被识别为有效的DateTime”;
答案 0 :(得分:2)
显然,tbStartDate.Text
不包含有效日期。至少,根据您目前的环境设置。
本地化可能是一个问题。这里有一个很好的答案:String was not recognized as a valid DateTime " format dd/MM/yyyy"。
<强>更新强>
您可能希望使用TryParse
:
ParseExact
DateTime.ParseExact(this.Text, "dd/MM/yyyy", null);
这样,您可以指定您期望的输入格式。
答案 1 :(得分:1)
date参数的dbtype是什么?您必须使用与您的参数类型相同的对象设置值。
答案 2 :(得分:0)
甚至比“TryParse”和“ParseExact”更好的是“TryParseExact”。 TryParseExact的一个重载需要一个格式字符串的字符串数组。因此,您可以在接受的输入上获得更大的灵活性。此外,使用DateTimeStyles参数,您可以在要解析的字符串中的空白区域中指定其他灵活性。