2011-01-05 70 views
0
cmd.Connection = con; 
con.Open(); 
cmd.CommandText = "Update tiit.Enquiry Set Status='" + DropDownList4.SelectedValue + "', NextFollowup='" + TextBox8.Text + "', Remarks='" + TextBox9.Text + "', Name='" + TextBox1.Text + "', Email='" + TextBox2.Text + "', Phone='" + TextBox3.Text + "','','','','', City='" + TextBox4.Text + "', Country='" + TextBox5.Text + "', Course='" + TextBox6.Text + "', Comments='" + TextBox7.Text + "', Cost='" +TextBox14.Text+ "' where SN='" + HiddenField1.Value + "'"; 
int i = cmd.ExecuteNonQuery(); 
con.Close(); 
+0

請詳細說明 – 2011-01-05 10:04:30

回答

3

不,不要這樣做。 從來沒有建立您的SQL查詢時使用字符串連接(+運算符)。使用參數化查詢:

cmd.Connection = con; 
con.Open(); 
cmd.CommandText = "UPDATE tiit.Enquiry Set [email protected], [email protected], ..."; 
cmd.Parameters.AddWithValue("@Status", DropDownList4.SelectedValue); 
cmd.Parameters.AddWithValue("@NextFollowup", TextBox8.Text); 
... 

這樣,您的代碼將不會受到SQL注入的攻擊,並且您不會遇到任何編碼問題。

3

在所有的概率是:

"Update tiit.Enquiry Set Status='" 

是你的問題。 (我正在談論的。)

但我完全同意 - 使用parametrised查詢。