在 C# 中存储到 SQLite DB 之前进行表单验证

本文关键字:表单 验证 DB 存储 SQLite | 更新日期: 2023-09-27 18:00:00

>我有一个保存按钮。当用户单击它时。表单中的数据输入将在发送到数据库之前进行验证。我怎样才能实现它?这是我的保存按钮的代码。

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.
}

在 C# 中存储到 SQLite DB 之前进行表单验证

如果验证中出现错误,则不会从方法返回。如果规则验证中存在异常/失败,请尽早从方法中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 的单独方法中提取验证逻辑,然后调用该方法进行验证。