我有一个保存按钮。当用户点击它时。表单中的数据输入将在发送到数据库之前进行验证。我怎样才能实现它? 这是我的保存按钮的代码。
private void save_Click(object sender, EventArgs e)
{
try
{
int civil_caseI = int.Parse(civil_case.Text);
}
catch (Exception cc)
{
MessageBox.Show("Enter Number Only on CIVIL CASE");
}
string areaI = area.Text;
if (areaI.Length <= 0)
{
MessageBox.Show("Area Field must not be Empty");
}
string addressI = address.Text;
if (addressI.Length <= 0)
{
MessageBox.Show("Address Field must not be Empty");
}
// HERE WILL BE THE QUERY TO INSERT THE DATA AFTER THE FORM IS VALIDATED.
}
答案 0 :(得分:0)
如果验证中存在错误,则不会从您的方法返回。如果规则验证中存在异常/失败,则从您的方法早期 return
。您只需在显示错误消息后添加return;
语句即可。
更好的方法是使用int.TryParse
来解析int
值,而不是try-catch
。记住异常是昂贵的。您也可以使用string.IsNullOrWhiteSpace
代替addressI.Length <= 0
,它会将空格视为无效值(如果您使用.Net framework 4.0或更高版本,否则请使用`string.IsNullOrEmpty) 。
private void save_Click(object sender, EventArgs e)
{
int civil_caseI;
if (!int.TryParse(civil_case.Text, out civil_caseI))
{
MessageBox.Show("Enter Number Only on CIVIL CASE");
return; //add that - early return
}
string areaI = area.Text;
if (string.IsNullOrEmpty(areaI.Trim()))
{
MessageBox.Show("Area Field must not be Empty");
return;
}
string addressI = address.Text;
if (string.IsNullOrEmpty(addressI.Trim())) //or addressI.Trim().Length <= 0
{
MessageBox.Show("Address Field must not be Empty");
return;
}
//HERE WILL BE THE QUERY TO INSERT THE DATA AFTER THE FORM IS VALIDATED.
}
您还可以在返回bool
的单独方法中提取验证的逻辑,然后调用该方法进行验证。