c# 3参数复选框DataView.RowFilter多列过滤

本文关键字:过滤 RowFilter DataView 参数 复选框 | 更新日期: 2023-09-27 18:05:22

我有一个小问题,我不知道如何实现更多的参数过滤器。我有3个复选框,名称,类别和日期(开始,结束)

这是我的代码,单独为我检查它工作良好

if (checkBox1.Checked == true)
            {
                views.RowFilter = "[Produkta nosaukums] like '%" + textBox3.Text.ToString() + "%'";
            }
            if (checkBox2.Checked == true)
            {
                views.RowFilter = "[Kateg.] like '%" + comboBox4.Text.ToString() + "%'";
            }
            if (checkBox3.Checked == true)
            {
                views.RowFilter = "[Derīguma termiņš] >= #" + dateTimePicker3.Value.ToString("yyyy/MM/dd") + "# and [Derīguma termiņš] <= #" + dateTimePicker4.Value.ToString("yyyy/MM/dd") + "#";
            }   

问题是当我想要更多的参数搜索,如名称和类别。我试过这里是我的代码,但只适用于忽略类别名称:/

if (checkBox1.Checked == false & checkBox2.Checked == false & checkBox3.Checked == false)
            {
                dataGridView1.Columns.Remove(editButton);
                dataGridView1.Columns.Remove(deleteButton);
                LOADALL();
            }

            if (checkBox1.Checked == true & checkBox2.Checked == true)
            {
                MessageBox.Show(comboBox4.Text.ToString());
                MessageBox.Show(textBox3.Text.ToString());
                views.RowFilter = "[Kateg.] like '%" + comboBox4.Text.ToString() + "%' and [Produkta nosaukums] like '%" + textBox3.Text.ToString() + "%'";
            }

我想要的是,滤镜添加另一个复选框。

  1. Check1, check2, check3
  2. true true true未实现
  3. 真假真不实现
  4. false true true不实现
  5. 真真假不工作尝试
  6. 真假假工作
  7. false真假工作
  8. 假假真工作
  9. 假假假工作

问题我不知道如何组合:)尝试但不工作:/

c# 3参数复选框DataView.RowFilter多列过滤

我建议使用stringBuilder与您的复选框检查。例如:

StringBuilder filter = new StringBuilder();
if(a.checked)
   filter.Append("filter here");
if(b.checked)
    filter.Append("filter here");
views.RowFilter= filter.toString();