DateTime(出生日期)和int(电话号码)字段弹出错误。
当前正在做一个简单的图书馆应用程序,以在图书馆中注册新的客户记录-尝试执行验证,以便在单击“保存”按钮(创建新记录)时,检查字段以查看是否向其中提交了数据。
例如我将以下代码用于NAME字段,该代码正常工作。
下面是DateofBirth和TelephoneNumber字段,我实现了类似于Name的代码,但是它们不起作用(出现错误)。我仍然对C#还是陌生的,将不胜感激。
非常感谢您。
有效的示例。
Name = this.txtName.Text;
if (string.IsNullOrWhiteSpace(Name))
{
MessageBox.Show("Customer's name is required. Please do not leave this field empty.");
using (var erp_provider = new ErrorProvider())
erp_Provider.SetError(this.txtName, "Customer's name is required. Kindly submit the details in the given field.");
return;
}
////// 以下代码存在问题:
DateofBirth = DateTime.Parse(msktxtDateofBirth.Text);
if (DateofBirth == DateTime.MinValue)
{
MessageBox.Show("Customer's Date of Birth is required. Please do not leave this field empty.");
using (var erp_provider = new ErrorProvider())
erp_Provider.SetError(this.msktxtDateofBirth, "Customer's Date of Birth is required. Kindly submit the details in the given field.");
return;
}
TelephoneNumber = Convert.ToInt32(txtTelephoneNumber.Text);
if (TelephoneNumber == null)
{
MessageBox.Show("Customer's Telephone Number is required. Please do not leave this field empty.");
using (var erp_provider = new ErrorProvider())
erp_Provider.SetError(this.txtTelephoneNumber, "Customer's Telephone Number is required. Kindly submit the details in the given field.");
return;
}
出生日期错误:
(未处理的异常) System.FormatException:'字符串未被识别为有效的DateTime。'
TelephoneNumber错误:
(未处理的异常) System.FormatException:'输入字符串的格式不正确。'
答案 0 :(得分:0)
在处理用户输入和对此输入进行验证时,不应使用会在输入无效的情况下引发异常的方法。相反,TryParse方法的族允许您 try 转换输入,如果发生错误,它们不会引发异常,而是返回true或false。
if(!DateTime.TryParse(msktxtDateofBirth.Text, out DateTime DateofBirth))
{
MessageBox.Show("Customer's Date of Birth is required. Please do not leave this field empty.");
using (var erp_provider = new ErrorProvider())
erp_Provider.SetError(this.msktxtDateofBirth, "Customer's Date of Birth is required. Kindly submit the details in the given field.");
return;
}
if (!Int32.TryParse(txtTelephoneNumber.Text, out int TelephoneNumber))
{
MessageBox.Show("Customer's Telephone Number is required. Please do not leave this field empty.");
using (var erp_provider = new ErrorProvider())
erp_Provider.SetError(this.txtTelephoneNumber, "Customer's Telephone Number is required. Kindly submit the details in the given field.");
return;
}