2016-04-13 6 views
0

私はc#winformsで正規表現を持っています。私はフォーマットが正しいかどうかを特定する必要があります。正しければ保存を続行しますが、正しければその確認が表示され、保存イベントはキャンセルされます。それは間違った形式だと述べているが、フォーマットが間違っているときそれもイベントを保存するために継続のコード正しくない場合にイベントをキャンセルする正規表現

private void emailTxt_Validating(object sender, CancelEventArgs e) 
{ 
    string pattern = "^([0-9a-zA-Z]([-\\.\\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\\w]*[0-9a-zA-Z]\\.)+[a-zA-Z]{2,9})$"; 

    if (Regex.IsMatch(emailTxt.Text, pattern)) 
    { 
     e.Cancel = false; 
    } 
    else 
    { 
     e.Cancel = true; 
     errorEmail.SetError(emailTxt, "Incorrect Format Try... [email protected]"); 
     CancelBtn.Enabled = true;    
    } 
} 

保存コード

private void SaveBtn_Click(object sender, EventArgs e) 
     { 
      //SQL Connection and SQL for inserting a new admin 
      SqlConnection con = new SqlConnection(@"Data Source=(LocalDB)\v11.0; AttachDbFilename=C:\Users\Donald\Documents\Visual Studio 2013\Projects\DesktopApplication\DesktopApplication\Student_CB.mdf ;Integrated Security=True"); 
      con.Open(); 

      if (ValidateChildren(ValidationConstraints.Enabled)) 
      { 
       try 
       { 
        string sql = "INSERT INTO Admin (Admin_Username, Admin_FName, Admin_SName, Admin_Email, Admin_Password) " + "VALUES (@adminName, @adminFirstname, @adminSurname, @adminEmail, @adminPassword);"; 

        using (var cmd = new SqlCommand(sql, con)) 
        { 
         cmd.Parameters.AddWithValue("@adminName", usernameTxt.Text); 
         cmd.Parameters.AddWithValue("@adminFirstname", firstnameTxt.Text); 
         cmd.Parameters.AddWithValue("@adminSurname", surnameTxt.Text); 
         cmd.Parameters.AddWithValue("@adminEmail", emailTxt.Text); 
         cmd.Parameters.AddWithValue("@adminPassword", passwordTxt.Text); 
         cmd.ExecuteNonQuery(); 
        } 

        MessageBox.Show("Admin Successfully Added!"); 

        this.Close(); 

       } 

       catch (Exception ex) 
       { 

        MessageBox.Show(ex.Message); 


       } 
      } 

      con.Close(); 
     } 

を検証

+0

エラーは他の場所で発生しており、わかりません。 Wheteは節約コードですか? –

+0

@GiorgiNakeuri上記のコードを保存コードで更新しました。 –

+0

'validateChildren'メソッドを表示できますか? – Valentin

答えて

0

私はそれが既に空であるかどうかを検証する関数でそれを入れ子にすることによって動作するようになっています。これはうまくいくようです。

関連する問題