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))”