大家好,我正在爲使用mvc4的另一個應用程序創建一個設置頁面。在設置頁面中:字符串在寫入數據庫時不能接受「's」
1.它包含兩個文本區域,其中用戶可以鍵入任何內容。
2.輸入後,如果用戶點擊提交按鈕,他寫的文本保存在一個SQL數據庫。
3.主應用程序將從數據庫中讀取數據並顯示它。
這裏是我的各個代碼:
型號:
public string PartnerInfo1 { get; set; }
public string PartnerInfo2 { get; set; }
控制器:
[HttpPost]
public ActionResult Index(AddDetailModel model)
{
pinfo1 = model.PartnerInfo1;
pinfo2 = model.PartnerInfo2;
SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["Sample"].ConnectionString);
con.Open();
SqlCommand cmd = new SqlCommand("update dbo.Partner_Design set PartnerInfo1='" + pinfo1 + "',PartnerInfo2='" + pinfo2 + "' where [PartnerID]='cs'", con);
cmd.ExecuteNonQuery();
return RedirectToAction("Index");
}
並在視圖:
@Html.TextAreaFor(m => m.PartnerInfo1)
@Html.TextAreaFor(m => m.PartnerInfo2)
在數據庫
,相應的表包含插入兩列PartnerInfo1,PartnerInfo2及其數據類型爲nvarchar(最大)。
我的問題是當我在文本區域輸入撇號它給我錯誤。例如,如果我鍵入「世界的」它會給點擊提交按鈕時出錯。
這是錯誤:
Incorrect syntax near 's'.
Unclosed quotation mark after the character string ''.
請建議我能做些什麼來避免this.Any幫助將不勝感激。
使用參數。不要(重複不要)通過字符串連接來建立你的查詢。參數化您的UPDATE語句將修復您的非轉義輸入,並確保沒有人可以將未經授權的SQL注入到您的代碼中。 – Matt 2013-02-12 11:03:25