我試圖傳遞參數爲int類型數組有一個問題。我在下面做了什麼,但兩種方法都失敗了。EF ExecuteSqlCommand與int數組參數
方法1(失敗):
int[] CategoryArray;
CategoryArray = new int[userItem.ListItemId.Count()];
int i=0;
foreach (int catID in userItem.ListItemId)
{
CategoryArray[i] = catID;
i++;
}
db.Database.ExecuteSqlCommand("delete from SupportRegion where UserId={0} and CategoryID not in ({1})", userItem.UserId, CategoryArray);
方法2(也失敗):
db.Database.ExecuteSqlCommand("delete from SupportRegion where UserId={0} and CategoryID not in ({1})", userItem.UserId, String.Join(",", userItem.ListItemId));
我怎樣才能使人們有可能在限定參數作爲整數數組?
非常感謝
嗨先生@帕維爾..方法2失敗與您在方法1中解釋的相同的原因:-)。我在EF和Web編程真正的新基本,所以我不太懂的「上述方法可以通過SQL注入攻擊所利用。」 。這種解釋更多?..非常感謝 – anevil
這是一種攻擊,當用戶傳遞一個字符串後,以文本方式插入查詢後,查詢功能將以不同的方式表達(例如查詢可能返回結果不應該返回)。在這裏閱讀更多信息:http://en.wikipedia.org/wiki/SQL_injection – Pawel