我正在尝试验证两个出生日期文本框字段 . 如果该成员未输入这两个框,则会弹出一条错误消息,例如“请输入有效的日期格式”
尝试保存而不输入文本框值时,它在 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”;
3 回答
显然,
tbStartDate.Text
不包含有效日期 . 至少,根据您当前的环境设置 .本地化可能是一个问题 . 这里有一个很好的答案:String was not recognized as a valid DateTime " format dd/MM/yyyy" .
Update
您可能希望使用
ParseExact
,而不是使用TryParse
:这样,您可以指定您期望的输入格式 .
date参数的dbtype是什么?必须使用与参数类型相同的对象设置值 .
甚至比“TryParse”和“ParseExact”更好的是“TryParseExact” . TryParseExact的一个重载需要一个格式字符串的字符串数组 . 因此,您可以在接受的输入上获得更大的灵活性 . 此外,使用DateTimeStyles参数,您可以在要解析的字符串中的空白区域中指定其他灵活性 .