RowFilter In和Not In List <string>无法返回行C#

时间:2017-07-13 14:11:14

标签: c# rowfilter

在我的代码中,我包含2个复选框,用于过滤表中的产品信息,无论其是否有订单。订单中的产品存储在List中。我使用的代码如下所示: -

// productsOnOrder is updated at the beginning of this method based off data stored on a MySQL database.
if (chkShowOrdered.CheckState == CheckState.Checked)
{
    tempTable.DefaultView.RowFilter = String.Format("StockNo IN ({0})", String.Join(",", productsOnOrder));
    tempTable = tempTable.DefaultView.ToTable();
}
else if (chkNotOrdered.CheckState == CheckState.Checked)
{
    tempTable.DefaultView.RowFilter = String.Format("StockNo NOT IN ({0})", String.Join(",", productsOnOrder));
    tempTable = tempTable.DefaultView.ToTable();
}

问题是,即使有订单上的产品,当您尝试过滤它们时,该表始终为空白。除此之外,当您尝试按未订购进行过滤时,所有产品都会显示。我已将表中和List中的值转换为大写,以确保值具有相同的格式。

为什么RowFilter没有产生预期的结果?

1 个答案:

答案 0 :(得分:0)

正如@Corak所说,它之所以不起作用,是因为这些值并未包含在单引号内。使用他提供的代码,问题现在已经解决。