我想在無效驗證後停止插入數據庫。就像下面的代碼片段顯示無效電話號碼的消息,但它仍將代碼插入到數據庫中。還有一個問題,我想在我的程序中應用這個規則,我認爲這個程序存在這個潛在的錯誤。無效驗證後停止插入
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();
}
}
我想,我必須使用這種方法,但我不知道如何。有什麼建議麼?
您的程序有SQL注入問題。谷歌「SQL注入」,然後用參數化查詢修復問題,否則你將陷入一個受到傷害的世界。 – Hogan 2012-08-12 06:38:36
我並不擔心這一點。 :-) – unknownsatan 2012-08-12 06:46:11