我想知道是否有可能加入datatable.select(表達)參數。比如我們能否在datatable.select在C#中添加參數
string query="[email protected]";
//dt is comming from database.
dt.Select(query);
如何添加此參數@Name
。我需要比較一個包含單引號的值,並且在上述情況下失敗。
在此先感謝
我想知道是否有可能加入datatable.select(表達)參數。比如我們能否在datatable.select在C#中添加參數
string query="[email protected]";
//dt is comming from database.
dt.Select(query);
如何添加此參數@Name
。我需要比較一個包含單引號的值,並且在上述情況下失敗。
在此先感謝
您可以使用String.Format
,你需要有兩個逃脫單引號:
string query = string.Format("Name='{0}'", name.Replace(@"'", "''"));
var rows = dt.Select(query);
,或者,如果你想使用Like
:
string query = string.Format("Name LIKE '%{0}%'", name.Replace(@"'", "''"));
(注一個DataTable
不易受sql注入影響,因爲它是一個內存中的對象)
您只能將表達式傳遞給Select方法。
如果你需要動態傳遞參數,那麼你可以試試這個。
string Exp = "Name ='" + variable + "'";
dt.select(Exp);
-1,沒有討論如何逃避'變量'(這是使用參數的全部點)。 – binki
感謝您的答覆,我並不擔心SQL注入。我需要比較一個包含單引號的值,並且在上述情況下失敗。 – user1685652
@ user1685652:由於我通常使用LINQ,同時我忘記了您需要跳過單引號。你只需要加倍,相應地編輯我的答案。 –
嘿感謝靈魂,它的工作 – user1685652