2014-04-24 115 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

相關問題