2011-06-27 63 views
0

我有一個windows窗體和用戶從組合框中選擇布參數,如國家 - 城市 方法。和我的參數是:依賴組合框填充問題

typeName - typeNo - pattern - variant 
R - 125 - 254978 - 1 
R - 125 - 254979 - 1 
R - 125 - 254979 - 2 
Ri- 54 - 54658 - 1 
Ri- 54 - 54658 - 2... etc. 

我填的是typeNameCombobox上formLoad 後比typeNoCombobox填寫typeNameCombobox_SelectedIndexChanged()事件 像這樣patternCombobox填寫typeNoCombobox_SelectedIndexChanged()事件......

但有是typeNameCombobox_SelectedIndexChanged() 中的一個問題,錯誤消息說:

無法綁定多部分標識符「System.Data.DataRowView」。

和一個使用這種方法荒謬

if (typeNameCombobox .SelectedValue.ToString() != "System.Data.DataRowView") 
{ 
fill -> typeNoCombobox 
} 

altought這四個組合框是依賴性的,在組合框下面的arent上冷杉負載填充。

我用第二個荒謬的方法

typeName.selectedIndex = 1; 
typeName.selectedIndex = 0; 
typeName.selectedIndex = 1; 
typeName.selectedIndex = 0; 

(我不得不做出這個最小的4倍,因爲有四個相關的組合框)

的所有組合框後填寫有,如果用戶沒有問題改變typeName所有的依賴值是changin

有沒有什麼辦法讓這段代碼清楚?響應後

編輯:

蒂普圖爾=類型名稱 尖端= typeNo 德森=圖案 varyant =變種

這裏是我的原代碼

ConnectionClassOleDb cc = new ConnectionClassOleDb(); 


    private void SiparisDetay_Load(object sender, EventArgs e) //formload 
     {    

      sorgu = "Select distinct tipTurId, tipTur from View_Tip order by tipTur"; 
      cc.cbDoldur(sorgu, cbTipTur, "tipTur", "tipTurId"); 

      cbTipTur.SelectedIndex = 1; 
      cbTipTur.SelectedIndex = 0; 
      cbTipTur.SelectedIndex = 1; 
      cbTipTur.SelectedIndex = 0;  

     } 



    private void cbTipTur_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      if (cbTipTur.SelectedValue.ToString() != "System.Data.DataRowView") 
      { 
       string sorgu = "SELECT distinct tipNo FROM tblTip where " + 
        " tipTurId = '" + cbTipTur.SelectedValue.ToString() + "' ORDER BY tipNo"; 
       cc.cbDoldur(sorgu, cbTip, "tipNo", "tipNo"); 

      } 
     } 

     private void cbTip_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      if (cbTip.SelectedValue.ToString() != "System.Data.DataRowView") 
      { 
       string sorgu = "SELECT desen FROM tblTip WHERE " + 
        " tipTurId = '" + cbTipTur.SelectedValue.ToString() + 
        "' AND tipNo = '" + cbTip.SelectedValue.ToString() + "' order by desen"; 
       cc.cbDoldur(sorgu, cbDesen, "desen", "desen"); 
      } 
     } 

     private void cbDesen_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      if (cbDesen.SelectedValue.ToString() != "System.Data.DataRowView") 
      { 
       string sorgu = "SELECT varyant FROM tblTip WHERE " + 
           " desen = '" + cbDesen.SelectedValue.ToString() + 
           "' AND tipTurId = '" + cbTipTur.SelectedValue.ToString() + 
           "' AND tipNo = '" + cbTip.SelectedValue.ToString() + "' ORDER BY varyant"; 
       cc.cbDoldur(sorgu, cbVaryant, "varyant", "varyant"); 
      } 
     } 

和在像這樣connectionclass代碼:

public void cbDoldur(string sorgu, ComboBox cb, string text, string value) //fill combobox 
     {   
      DataTable dtDdl = Dt(sorgu); 
      cb.DataSource = dtDdl; 
      cb.DisplayMember = text; 
      cb.ValueMember = value;    

      if (cb.Items.Count > 0) 
      { 
       cb.SelectedIndex = 0; 
      } 

     } 


public DataTable Dt(string query) 
     { 

      DataTable dt = new DataTable(); 
      if (Open()) 
      { 
       OleDbDataAdapter da = new OleDbDataAdapter(query, connection); 
       try 
       { 
        da.Fill(dt); 

       } 
       catch (Exception ex) 
       { 
        MessageBox.Show("Sistem Mesajı:" + ex.Message, "Hata", MessageBoxButtons.OK, MessageBoxIcon.Error); 
       } 
      } 
      //connection.Close(); 
      return dt; 
     } 
+1

你能顯示代碼,我認爲你是對相關查詢 – V4Vendetta

+0

結合正確好吧,我加,我用 – Rapunzo

+0

原代碼如何將'distinct tipNo改爲tipNo',添加別名,並將'distinct tipTurId添加爲tipTurId' – V4Vendetta

回答

0

我解決我的問題,以改變我的comboboxpopulate功能類這樣

cb.DisplayMember = text; 
cb.ValueMember = value; 
cb.DataSource = dtDdl; 
1

你應該嘗試添加別名在查詢的字段名的

Select distinct tipTurId, tipTur from View_Tip 

Select distinct tipTurId as tipTurId , tipTur from View_Tip 

,並且在這種情況下SELECT distinct tipNo FROM tblTip

SELECT distinct tipNo as tipNo FROM tblTip 

,因爲這將無法找到域在DataSource中爲tipTurId,因爲它會以Distinct返回,與tipNo

+0

沒有工作,我查看了數據集可視化工具,並且有可以查看的字段名稱 [link](http:// i .imgur.com/Y1D8v.jpg) – Rapunzo