2011-07-13 76 views
1

我想過濾在DataView中填充的集合。我正在使用的控件是多選複選框Combobox。從這返回的字符串是'val1,val2,val3'。然後我把它傳遞給一個sql查詢語句,以便能夠用作我的FilterExpression。然而,當我的表達式分配給dataView.RowFilter = somethingFilterString,它的表達式爲Something IN(val1,val2,val3)時,會出現一個錯誤,表明它無法找到列val1。任何人可以幫助請嗎?如何使用DataView的RowFilter使用關鍵字'IN'來過濾集合

+0

你能包括整個「somethingFilterString」? –

+1

我猜你正在比較字符串 - 你有把'val1'(''val1'')的引號嗎? –

回答

0

如果val1, val2, val3的值是字符串(例如,"apples, pears, bananas"),那麼您需要查詢文本以顯示它們是字符串,否則它必須假定它們是列名稱。

如果你正在構建的逗號分隔的列表,像這樣:

var csv = string.Join(",", comboBox.SelectedValues); //guess on combo box property 

...那麼你可以做這樣的事情加上引號,可獲取值改爲:

[Test] 
public void SO6680770() 
{ 
    var cols = new[] { "apples", "pears", "bananas" }; 

    var csv = string.Join(", ", cols.Select(s => string.Concat("'", s, "'"))); 

    Assert.AreEqual("'apples', 'pears', 'bananas'", csv); 
} 
相關問題