文本框不显示错误

use*_*417 0 c# validation datetime date winforms

我试图验证出生文本框字段的两个数据,如果成员没有进入这两个框,将弹出一个错误消息,如"请输入有效的日期格式"

通过使用以下代码

       if (tbStartDate.Text != "0" && tbEndDate.Text != "0")
       { 

        string dob = tbStartDate.Text;
        DateTime dv = DateTime.Parse(dob);
        string format1 = dv.ToString("yyyy-MM-dd");
        string dob2 = tbEndDate.Text;
        DateTime dt2 = DateTime.Parse(dob2);
        string format2 = dt2.ToString("yyyy-MM-dd");
     }
      else
     {
            MessageBox.Show("pls enter valid date ");

     }
Run Code Online (Sandbox Code Playgroud)

当我试图保存输入文本框值时,它显示错误,如"字符串未被识别为有效的DateTime".

任何人都可以帮助....

这是修改后的代码仍然是在Datetime DV显示错误;

         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");
Run Code Online (Sandbox Code Playgroud)

仍然在日期时间Dv显示错误,如"字符串未被识别为有效日期时间";

这是第三次修改代码

       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");
     }
Run Code Online (Sandbox Code Playgroud)

HCL*_*HCL 5

不要使用DateTime.Parse.请DateTime.TryParse改用.结果是一个布尔值,如果解析成功,则返回true.

更新 根据您的评论中的要求:

DateTime dv;
if(!DateTime.TryParse(dob,out dv)){
   MessageBox.Show("Please enter a valid date");
   return;
}
....
Run Code Online (Sandbox Code Playgroud)

Cleary,你也可以使用Parse并捕获异常,但这样做会很糟糕.最好使用TryParse.我只检查了一个日期值.您可以根据需要扩展逻辑.希望这有帮助.