У меня есть таблица с тремя столбцами A, B
и C
, где A, B
- это ключи, а C
- соответствующее значение.C# Фильтр DataTable с несколькими ключами (столбцами) и несколькими значениями
Я пытаюсь отфильтровать его с несколькими значениями для ключей. Для того, чтобы сделать это, я пробовал:
// 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;
После того, как RowFilter, то dv
пуст. Но я ожидал получить вторую и третью строки из DataTable.
Если я:
dv.RowFilter = "(A = 1 and B = 2)";
фильтрует хорошо, но он показывает только одну строку (не то, что мне действительно нужно).
Кто-нибудь знает, как фильтровать DataTable с несколькими значениями и несколькими ключами?
Спасибо!
Если я правильно понимаю, вы можете использовать 'dv.RowFilter =" ((A = 1 и B = 2) или (A = 2 и B = 1)) " –