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)
不要使用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.我只检查了一个日期值.您可以根据需要扩展逻辑.希望这有帮助.