gpt4 book ai didi

c# - 使用多列过滤 DataView

转载 作者:行者123 更新时间:2023-11-30 13:43:04 25 4
gpt4 key购买 nike

在我的应用程序中,我使用数据 View 在动态传递过滤器选项的地方应用过滤器。如果有 2 个过滤器参数,则数据 View 应针对参数 1 进行过滤,然后按参数 2 进行过滤。我正在使用一种在 for 循环中调用的方法,我将计数设置为使用列表框选择的参数总数,但仅对最后一个参数进行过滤。这是我的代码:

string str = "";
for (int i = 0; i < listbox.Items.Count; i++)
{
if (listbox.Items[i].Selected)
{
if (str != string.Empty)
{
str = str + "," + listbox.Items[i].Text;

}
else
{
str = str + listbox.Items[i].Text;
}
}
}

string[] items = str.Split(',');
for (int i = 0; i < items.Length; i++)
{
ApplyFilter(items[i],dv);
}

private DataView ApplyFilter(string str,DataView newdv)
{
newdv.RowFilter = "[" + str + "]=" + ddl.SelectedItem.ToString();

return newdv;
}

请提供合适的解决方案。

提前致谢...

最佳答案

你应该完全应用你的过滤器,而不是一个一个地应用:

newdv.RowFilter = "Column1 = " + value1 + " AND Column2 = " + value2;

因此您可以将代码更改为:

string[] items = str.Split(',');
string filter = string.Empty;
for (int i = 0; i < items.Length; i++)
{
filter += items[i] + " = " + dropdown.SelectedValue;
if (i != items.Length - 1)
{
filter += " AND ";
}
}
newdv.RowFilter = filter;

关于c# - 使用多列过滤 DataView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1137020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com