2017-02-22 7 views
0

私は、この問題の解決策も見つけられませんでした。 comboboxesにはsqlという値があり、テーブルのデータをフィルタリングするときには、ユーザがcomboboxを選択したときに、それをクリアしたい場合は別の項目のみを選択するという問題があります。選択をクリアするためにコンボボックスに空白スペースを追加します。

検索後、私はcomboboxesをクリアするためにbuttonを追加しましたが、私はその解決策を望んでいません、私は考えていたのは、選択をクリアするために各コンボボックスに空白スペースを作成することです。

選択を削除するには、ユーザーが選択できるスペースをどのように作成できますか。 CODE:事前に

private void vidro_Load(object sender, EventArgs e) 
     { 
      SqlDataAdapter SDA = new SqlDataAdapter("select distinct desempenho from vidros", con); 
      DataTable DTT = new DataTable(); 
      SDA.Fill(DTT); 
      desempenho.Items.Clear(); 
      foreach (DataRow ROW in DTT.Rows) 
      { 
       desempenho.Items.Add(ROW["desempenho"].ToString()); 
      } 
      SqlDataAdapter SDA2 = new SqlDataAdapter("select distinct valu from vidros", con); 
      DataTable DTT2 = new DataTable(); 
      SDA2.Fill(DTT2); 
      valu.Items.Clear(); 
      foreach (DataRow ROW in DTT2.Rows) 
      { 
       valu.Items.Add(ROW["valu"].ToString()); 
      } 
      SqlDataAdapter SDA3 = new SqlDataAdapter("select distinct fs from vidros", con); 
      DataTable DTT3 = new DataTable(); 
      SDA3.Fill(DTT3); 
      fsolar.Items.Clear(); 
      foreach (DataRow ROW in DTT3.Rows) 
      { 
       fsolar.Items.Add(ROW["fs"].ToString()); 
      } 
      SqlDataAdapter SDA5 = new SqlDataAdapter("select distinct compo from vidros", con); 
      DataTable DTT5 = new DataTable(); 
      SDA5.Fill(DTT5); 
      select.Items.Clear(); 
      foreach (DataRow ROW in DTT5.Rows) 
      { 
       compo.Items.Add(ROW["compo"].ToString()); 
      } 
      SqlDataAdapter SDA6 = new SqlDataAdapter("select distinct sel from vidros", con); 
      DataTable DTT6 = new DataTable(); 
      SDA6.Fill(DTT6); 
      select.Items.Clear(); 
      foreach (DataRow ROW in DTT6.Rows) 
      { 
       select.Items.Add(ROW["sel"].ToString()); 
      } 
     } 
     private void compo_SelectedIndexChanged_1(object sender, EventArgs e) 
     { 
      FillData(); 
     } 
     private void select_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      FillData(); 
     } 
     private void fsolar_SelectedIndexChanged_1(object sender, EventArgs e) 
     { 
      FillData(); 
     } 
     private void valu_SelectedIndexChanged_1(object sender, EventArgs e) 
     { 
      FillData(); 
     } 
     private void desempenho_SelectedIndexChanged_1(object sender, EventArgs e) 
     { 
      FillData(); 
     } 
     private void FillData() 
     { 
      string combo1value = desempenho.Text; 
      string combo2value = valu.Text; 
      string combo3value = fsolar.Text; 
      string combo4value = select.Text; 
      string combo5value = compo.Text; 

      string query = "select [descri],[enchimento],[compo] from vidros where 1=1 "; 
      string queryWhere = ""; 
      SqlDataAdapter sda = new SqlDataAdapter(); 
      SqlCommand cmd = new SqlCommand(); 
      cmd.Connection = con; 
      sda.SelectCommand = cmd; 

おかげ

+0

空のアイテムをアイテムコレクションの最初のアイテムとして挿入するだけです。コードを表示すると、さらに – Pikoh

+0

@Pikoh okコードが追加されます。ありがとう – septaug

答えて

1

Let's単なる一例として、あなたのコンボボックスのいずれかを使用します。あなたが最初の一人としての空のアイテムを持っています

desempenho.Items.Clear(); 
foreach (DataRow ROW in DTT.Rows) 
{ 
    desempenho.Items.Add(ROW["desempenho"].ToString()); 
} 
desempenho.Items.Items.Insert(0,""); 

この方法あなたのコンボは、フォームの検証時にチェックする必要があります。

+0

それは動作しますが、問題はありますが、今は1の代わりに8つの空白があります – septaug

+0

'foreach'の外側に' desempenho.Items.Items.Insert(0、 "");を入れてください。 – Pikoh

+0

忘れてしまいました、私の間違い。それは今働く。ありがとう – septaug

関連する問題