首页 文章

尝试保存出生日期的空日期时出错

提问于
浏览
0

我正在尝试验证两个出生日期文本框字段 . 如果该成员未输入这两个框,则会弹出一条错误消息,例如“请输入有效的日期格式”

尝试保存而不输入文本框值时,它在 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 回答

  • 2

    显然, tbStartDate.Text 不包含有效日期 . 至少,根据您当前的环境设置 .

    本地化可能是一个问题 . 这里有一个很好的答案:String was not recognized as a valid DateTime " format dd/MM/yyyy" .

    Update

    您可能希望使用 ParseExact ,而不是使用 TryParse

    DateTime.ParseExact(this.Text, "dd/MM/yyyy", null);
    

    这样,您可以指定您期望的输入格式 .

  • 0

    date参数的dbtype是什么?必须使用与参数类型相同的对象设置值 .

  • 1

    甚至比“TryParse”和“ParseExact”更好的是“TryParseExact” . TryParseExact的一个重载需要一个格式字符串的字符串数组 . 因此,您可以在接受的输入上获得更大的灵活性 . 此外,使用DateTimeStyles参数,您可以在要解析的字符串中的空白区域中指定其他灵活性 .

相关问题