在我的代码中,我包含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没有产生预期的结果?
答案 0 :(得分:0)
正如@Corak所说,它之所以不起作用,是因为这些值并未包含在单引号内。使用他提供的代码,问题现在已经解决。