C#使用多个键(列)和多个值筛选数据表
我有一个表,有三列C#使用多个键(列)和多个值筛选数据表,c#,datatable,dataview,C#,Datatable,Dataview,我有一个表,有三列a,B和C,其中a,B是键,C是对应的值 我试着用多个键的值来过滤它。为了做到这一点,我尝试了: // Initialise some data DataTable dt = new DataTable(); dt.Columns.Add("A", typeof(int)); dt.Columns.Add("B", typeof(int)); dt.Columns.Add("C", typeof(string)); dt.Rows.Add(1, 1, "temp1"); dt
a,B
和C
,其中a,B
是键,C
是对应的值
我试着用多个键的值来过滤它。为了做到这一点,我尝试了:
// Initialise some data
DataTable dt = new DataTable();
dt.Columns.Add("A", typeof(int));
dt.Columns.Add("B", typeof(int));
dt.Columns.Add("C", typeof(string));
dt.Rows.Add(1, 1, "temp1");
dt.Rows.Add(1, 2, "temp2");
dt.Rows.Add(2, 1, "temp3");
dt.Rows.Add(2, 2, "temp4");
dgv1.DataSource = dt;
// Filter the DataTable to show the second and third lines of `dt`
DataView dv = new DataView(dt);
dv.RowFilter = "(A = 1 and B = 2) and (A = 2 and B = 1)";
dgv2.DataSource = dv;
行过滤器之后,dv
为空。但是我希望从DataTable接收第二行和第三行
如果我这样做:
dv.RowFilter = "(A = 1 and B = 2)";
它过滤得很好,但只显示一行(不是我真正需要的)
有人知道如何过滤具有多个值和多个键的数据表吗
谢谢 如果我理解正确,您可以使用
dv.RowFilter=“((A=1和B=2)或(A=2和B=1))”
原始筛选器没有给您任何结果的原因是
A
不能=1和2,同样的B
。你要找的是其中一个。如果我理解正确,你可以使用dv.RowFilter=“((A=1和B=2)或(A=2和B=1))”