2015-02-06 1 views
0

A, BC의 테이블이 있습니다. 여기서 A, B은 키이고 C은 해당 값입니다.여러 키 (열) 및 여러 값이있는 DataTable을 필터링하십시오.

키에 대해 여러 값으로 필터링하려고했습니다. 그렇게하기 위해, 나는 해봤 다음의 RowFilter 후

// 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)"; 

.

데이터 테이블을 여러 값과 여러 개의 키로 필터링하는 방법을 아는 사람이 있습니까?

감사합니다. 만약 내가 제대로 이해하고

+0

올바르게 이해하면'dv.RowFilter = "((A = 1 및 B = 2) 또는 (A = 2 및 B = 1))" –

답변

2

, 당신은 원래의 필터를 사용하면 어떤 결과를 제공하지 않은 dv.RowFilter = "((A = 1 and B = 2) or (A = 2 and B = 1))"

이유를 사용할 수 A 수 없습니다 = 1, 2 때문에, 마찬가지로 B 함께. 당신이 찾고있는 것은 하나 또는 다른 것입니다.

관련 문제