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() + "%'";
}
我想要的是,滤镜添加另一个复选框。
- Check1, check2, check3
- true true true未实现
- 真假真不实现
- false true true不实现
- 真真假不工作尝试
- 真假假工作
- false真假工作
- 假假真工作
- 假假假工作
问题我不知道如何组合:)尝试但不工作:/
我建议使用stringBuilder与您的复选框检查。例如:
StringBuilder filter = new StringBuilder();
if(a.checked)
filter.Append("filter here");
if(b.checked)
filter.Append("filter here");
views.RowFilter= filter.toString();