-1

小さな問題があります。より多くの引数フィルターを実現する方法がわかりません。名前、カテゴリ、日付(開始、終了)の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. チェック1、チェック2、チェック3
  2. true true true 実現しない
  3. true false true 実現しない
  4. false true true 実現しない
  5. true true false 動作しない
  6. 真偽偽の仕事
  7. 偽の真の偽の仕事
  8. 偽偽真の仕事
  9. 偽偽偽の仕事

問題私はどのように結合するかわからない:)試したがうまくいかなかった:/

4

1 に答える 1

3

チェックボックスのチェックと併せて stringBuilder を使用することをお勧めします。例えば:

StringBuilder filter = new StringBuilder();

if(a.checked)
   filter.Append("filter here");

if(b.checked)
    filter.Append("filter here");

views.RowFilter= filter.toString();
于 2013-03-22T11:44:42.937 に答える