2014-04-24 68 views
0

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

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

你究竟在问怎么做?它看起来像你已经在做表单验证,并没有返回。 – Nathan

+0

您已经在执行一些验证,您能指定问题到底是什么吗? –

+0

@TomasPastircak我的意思是。即使我执行验证,它是否仍然发送无效的数据,否则它只会发送只要没有更多的无效类型或键入? – user3569641

回答

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然后调用验证该方法。

+0

但是,我得到了一个错误。字符串不包含IsNullorWhiteSpace的定义@Habib – user3569641

+0

我使用3.5 .Net Framework – user3569641

+0

@ user3569641,它应该是'IsNullOrWhiteSpace',确保案例相同,在您的评论中看起来'Or'是'or'。此外,它仅适用于以.Net Framework 4.0或更高版本为目标的应用程序。如果你的应用程序使用.net framework 3.5或更低,那么使用'string.IsNullOrEmpty' – Habib

相关问题