如何将筛选器应用于具有多个“AND”条件的数据视图
本文关键字:AND 条件 视图 数据 筛选 应用于 | 更新日期: 2023-09-27 18:35:32
我有一个包含一些行的DataTable
。复制到DataView
.现在我有List<string>
形式的 ID.其中包含从GridView
中选择的项目。现在我想使用 AND 作为过滤器来过滤这个DataView
。
当我只应用一个时,它可以工作,但应用多个AND
不起作用。
在.cs:
List<string> selectedAddress = new List<string>();
protected DataView GetSelectedItems()
{
DataView dv = new DataView(dtresult);
int count = selectedAddress.Count();
if (count > 0)
{
string query = "ID=";
for (int j = 0; j < selectedAddress.Count; j++)
{
string val = selectedAddress[j].ToString();
if (j == 0)
{
query += val + " and ";
}
else
{
query += "ID=" + val + "";
}
}
dv.RowFilter = query;
}
return dv;
}
知道吗?
试试这个:
List<string> selectedAddress = new List<string>();
protected DataView GetSelectedItems()
{
DataView dvResult = new DataView(dtresult);
string query = "";
int count = selectedAddress.Count();
for (int j = 0; j < selectedAddress.Count; j++)
{
string val = selectedAddress[j].ToString() + ",";
query += val;
}
query = query.Remove(query.Length - 1);
dvResult.RowFilter = "ID IN(" + query + ")";
return dvResult;
}
如 MSDN 中所述 该值必须在引号内。因此,以下内容应该有效:
dv.RowFilter = "ID = '23' or ID = '46'";
无论如何,当您的列表包含要显示的 ID 时,运算符应该是 OR 而不是 AND,因为表中不应该同时有两个 ID 的行。