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..时间太长了,但效果很好。。!谢谢可能重复的