C# 如何将筛选器应用于具有多个“变量”的DataView;及;条件

C# 如何将筛选器应用于具有多个“变量”的DataView;及;条件,c#,asp.net,filtering,dataview,rowfilter,C#,Asp.net,Filtering,Dataview,Rowfilter,我有一个数据表,其中包含一些行。它被复制到DataView。现在我有了列表形式的ID。其中包含从GridView中选择的项目。现在我想使用AND作为过滤器过滤这个DataView 当我只应用一个时,它会起作用,但应用多个和则不起作用 在.cs中: List<string> selectedAddress = new List<string>(); protected DataView GetSelectedItems() { DataView dv = new D

我有一个
数据表
,其中包含一些行。它被复制到
DataView
。现在我有了
列表
形式的ID。其中包含从
GridView
中选择的项目。现在我想使用AND作为过滤器过滤这个
DataView

当我只应用一个时,它会起作用,但应用多个
则不起作用

在.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 selectedAddress=new List();
受保护的数据视图GetSelectedItems()
{
DataView dv=新的DataView(dtresult);
int count=selectedAddress.count();
如果(计数>0)
{
string query=“ID=”;
对于(int j=0;j
任何想法?

如值中所述,必须在引号内。 因此,以下措施应该有效:

dv.RowFilter = "ID = '23' or ID = '46'";
无论如何,当您的列表包含要显示的ID时,运算符应该是或不是,并且表中不应该有同时具有两个ID的行。

尝试以下操作:

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;
}
List selectedAddress=new List();
受保护的数据视图GetSelectedItems()
{
DataView dvResult=新的DataView(dtresult);
字符串查询=”;
int count=selectedAddress.count();
对于(int j=0;j
great@Somnath..时间太长了,但效果很好。。!谢谢可能重复的