如何将过滤器应用于具有多个“ AND”条件的DataView

SHE*_*ETE 2 c# asp.net dataview filtering rowfilter

我有一个DataTable包含一些行。复制到DataView。现在,我有ID的形式List<string>。其中包含从中选择的项目GridView。现在,我想DataView使用AND作为过滤器对此进行过滤。

当我只应用一个时,它起作用,但是应用多个时,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;
}
Run Code Online (Sandbox Code Playgroud)

任何的想法?

小智 6

尝试这个:

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;
}
Run Code Online (Sandbox Code Playgroud)