2013-08-30 61 views

回答

7

您可以使用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注入影響,因爲它是一個內存中的對象)

+0

感謝您的答覆,我並不擔心SQL注入。我需要比較一個包含單引號的值,並且在上述情況下失敗。 – user1685652

+0

@ user1685652:由於我通常使用LINQ,同時我忘記了您需要跳過單引號。你只需要加倍,相應地編輯我的答案。 –

+0

嘿感謝靈魂,它的工作 – user1685652

-1

您只能將表達式傳遞給Select方法。

如果你需要動態傳遞參數,那麼你可以試試這個。

string Exp = "Name ='" + variable + "'";

dt.select(Exp); 
+0

-1,沒有討論如何逃避'變量'(這是使用參數的全部點)。 – binki