我試圖創建一個列表值的字符串;我所想要實現的SQL語法至極是在更新查詢中使用:從一個普通的列表創建一個字符串
UPDATE TABLE SET COLUMN1 =X WHERE COLUMN2 IN ('A','B','C')
(A,B,C是我列表中的項目。)我怎樣才能做到這一點? 嘗試:
string commaSeparatedList = _list.Aggregate((a, x) => a + ", " + x);
,但它創造了我沒有撇號列表...
我試圖創建一個列表值的字符串;我所想要實現的SQL語法至極是在更新查詢中使用:從一個普通的列表創建一個字符串
UPDATE TABLE SET COLUMN1 =X WHERE COLUMN2 IN ('A','B','C')
(A,B,C是我列表中的項目。)我怎樣才能做到這一點? 嘗試:
string commaSeparatedList = _list.Aggregate((a, x) => a + ", " + x);
,但它創造了我沒有撇號列表...
如果你的代碼給你,你想除了撇號到底是什麼,只要堅持一個
.Select(s => "'" + s + "'")
在_list
。和.Aggregate...
之間
您也可以使用String.Join Method代替:
string commaSeparatedList = string.Join(",", _list.Select(s => "'" + s + "'"));
string commaSeparatedList = "'"+_list.Aggregate((a, x) => a + "','" + x)+"'";
如果您正在構建,將被處決警惕你可能會打開你的自我高達SQL注入攻擊SQL。例如,如果你的列表中的一個項目被稱爲「')或1 = 1; --'。我建議用更高層次的概述來開啓一個新問題,並且詢問你是否有更好的方法去做你想做的事情。 –
解決這個問題的另一種方式是比構建SQL字符串更安全的方法是使用[Linq To Sql](http://msdn.microsoft.com/zh-cn/library/bb386976.aspx)來構建查詢您。 (打開一個新的問題,如果你需要幫助做Linq到SQL) –
SQL注入現在不重要,但感謝您的意見:) – Sin5k4