0
在我的代码中,我包含2个复选框,它过滤表中的产品信息,无论它是否在订单中。订购的产品存储在列表中。我使用的代码如下所示: -RowFilter In和Not In列表<String>无法返回行C#
// 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();
}
的问题是,即使有产品订单,当您尝试,并将其筛选表始终是空白。除此之外,所有产品都会在您尝试通过未订购进行过滤时显示。我已将表格内和列表内的值转换为大写,以确保值的格式相同。
RowFilter怎么没有产生想要的结果?
'productsOnOrder'是一串'string'值吗? – Corak
是的,他们都存储在列表中的字符串值 –
你确定你必须使用'StockNo'吗?也许它应该是'ProductNo'?第二件事是你重写'tempTable',所以它将是完全新的对象,并且对旧对象的数据绑定将不起作用。如果值是字符串而不是数字,则必须将它们加密(放在引号中) –