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