我想过滤填充在DataView中的集合。我正在使用的控件是多选复选框Combobox。从此返回的字符串是'val1,val2,val3'。然后我将它传递给sql查询语句,以便能够用作我的FilterExpression。但是,当我将表达式分配给dataView.RowFilter = somethingFilterString时,我的表达式为Something IN(val1,val2,val3)会出现错误,无法找到列val1。有人可以帮忙吗????
答案 0 :(得分: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);
}