2016-10-12 2 views
-1

Это мой код, когда нажимается кнопка:Email Validation в C#

private void button1_Click(object sender, EventArgs e) 
{ 
    conn.Open(); 
    SqlCommand cmd = conn.CreateCommand(); 
    cmd.CommandType = CommandType.Text; 
    cmd.CommandText = "insert into Table1 values('" + textBox1.Text+"','" + textBox2.Text +"','" + textBox3.Text +"')"; 
    int atpos = textBox3.Text.IndexOf("@"); 
    int dotpos = textBox3.Text.LastIndexOf("."); 

    if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= textBox3.Text.Length) 
    { 
     MessageBox.Show("not a valid email address");     
    } 
    else 
    {  
    } 

    cmd.ExecuteNonQuery(); 
    conn.Close(); 

    textBox1.Text = ""; 
    textBox2.Text = ""; 
    textBox3.Text = ""; 
    displayData(); 

    MessageBox.Show("data inserted successfully");  
} 

Я хочу, чтобы, когда, если условие истинно, то данные не должны быть вставлены в таблицу.

Заранее спасибо.

+0

добавить "return;" после «MessageBox.Show (« недействительный адрес электронной почты »); –

+3

[Остерегайтесь маленьких таблиц bobby.] (Https://xkcd.com/327/) –

+0

Переместите команды db внутри предложения else. –

ответ

0

не совсем уверен, если это то, что вы ищете, но здесь идет:

private void button1_Click(object sender, EventArgs e) 
{   
    int atpos = textBox3.Text.IndexOf("@"); 
    int dotpos = textBox3.Text.LastIndexOf("."); 

    if (atpos < 1 || dotpos < atpos + 2 || dotpos + 2 >= textBox3.Text.Length) 
    { 
     MessageBox.Show("not a valid email address"); 

    } 
    else 
    { 
     conn.Open(); 
     SqlCommand cmd = conn.CreateCommand(); 
     cmd.CommandType = CommandType.Text; 
     cmd.CommandText = "insert into Table1 values('" + textBox1.Text+"','" + textBox2.Text +"','" + textBox3.Text +"')"; 

     cmd.ExecuteNonQuery(); 
     conn.Close(); 

     textBox1.Text = ""; 
     textBox2.Text = ""; 
     textBox3.Text = ""; 
     displayData(); 

     MessageBox.Show("data inserted successfully"); 
    }  

} 

Я хотел бы предложить вам посмотреть на использование Regex для проверки адреса электронной почты, она является ссылка на то, как использовать регулярные выражения для электронной почты в C#: Regex Email validation

private void button1_Click(object sender, EventArgs e) 
{  
    Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"); 
    Match match = regex.Match(textBox3.Text); 

    if (match.Success) 
    { 
     MessageBox.Show("not a valid email address"); 
    } 
    else 
    { 
    conn.Open(); 
    SqlCommand cmd = conn.CreateCommand(); 
    cmd.CommandType = CommandType.Text; 
    cmd.CommandText = "insert into Table1 values('" + textBox1.Text+"','" + textBox2.Text +"','" + textBox3.Text +"')"; 

    cmd.ExecuteNonQuery(); 
    conn.Close(); 

    textBox1.Text = ""; 
    textBox2.Text = ""; 
    textBox3.Text = ""; 
    displayData(); 

    MessageBox.Show("data inserted successfully"); 
    }  
} 

Кроме того, я не уверен, что вы progject параметры, но я также хотел бы предложить, используя какой-то ORM. Посмотрите на Entity Framework, если вы заинтересованы.