目前,我有:過濾事件 - SQL
public static IList getFilteredEvents( DateTime Start, DateTime End, string env, string req) { string QueryString; if(env == "all") { QueryString = "SELECT * FROM table WHERE date BETWEEN '" + Start + "' AND '" + END + "'"; } else { QueryString = "SELECT * FROM table WHERE date BETWEEN '" + Start + "' AND '" + END + "' AND env='" + env + "'"; } }
我做傳遞一個數據對象從視圖獲取請求字符串。在我的控制器中,我這樣得到它: string env = Request.QueryString["filter"];
是否有更好的方法來篩選我的結果,而不必在if-elseif鏈中編寫多個查詢?我將如何實現這個多個過濾器,例如在查詢AND req = '" + req + "';
?
感謝您的幫助!
無關,但它聽起來像我只是在這裏要求一個SQL注入攻擊。 – 2012-02-22 17:40:07
這只是一個簡單的例子,但是,我知道這很容易受到SQL攻擊:]。 – 2012-02-22 17:52:15
(在我看來)關於這個的權威性文章是Erland Sommarskog的[T-SQL中的動態搜索條件](http://www.sommarskog.se/dyn-search.html) – 2012-02-22 18:13:11