無効な検証の後、データベースへの挿入を停止したい。次のコードスニペットのように、無効な電話番号のメッセージが表示されますが、それでもデータベースにコードが挿入されます。もう1つの質問ですが、この潜在的なバグがあると思うプログラム全体にこのルールを適用したいと思います。
private void button1_Click(object sender, EventArgs e)
{
Regex regexObj = new Regex(@"^\(?([0-9]{3})\)?[-. ]?([0-9]{3})[-. ]?([0-9]{4})$");
if (regexObj.IsMatch(textBox3.Text))
{
string formattedPhoneNumber =
regexObj.Replace(textBox3.Text, "($1) $2-$3");
}
else
{
MessageBox.Show("Invalid Phone Number! \nFormat is (XXX) XXX-XXXX");
}
if (string.IsNullOrEmpty(textBox1.Text) || textBox1.Text.Trim().Length == 0)
{
MessageBox.Show("Field can't be left blank!");
return;
}
if (string.IsNullOrEmpty(textBox2.Text) || textBox2.Text.Trim().Length == 0)
{
MessageBox.Show("No Name for the Author!");
return;
}
SqlConnection con = new SqlConnection("Server = DAFFODILS-PC\\SQLEXPRESS;Database=Library;Trusted_Connection=True;");
SqlCommand sql1 = new SqlCommand("INSERT into Members VALUES('" + textBox1.Text + "' , '" + textBox2.Text + "','" + textBox3.Text + "')", con);
con.Open();
sql1.ExecuteNonQuery();
con.Close();
this.membersTableAdapter.Fill(this.booksDataSet.Members);
MessageBox.Show("Data Added!");
textBox1.Text = "";
textBox2.Text = "";
textBox3.Text = "";
textBox1.Focus();
}
}
私はこれに方法を使わなければならないと思いますが、方法がわかりません。助言がありますか?