2013-03-25 62 views
0

我們需要通過從另一個組合框中選擇值來將值添加到組合框。 它不會按照它應該選擇的值。只有第一部分執行。 這是代碼: 它不適合我們。我們需要通過從其他組合框中選擇值來將值添加到組合框中

private void section_SelectedIndexChanged(object sender, EventArgs e) 
    { 
     string selected = (string)section.SelectedItem; 

     if(selected == "Giftarticles") 
     { 
      SqlConnection conn1 = new SqlConnection(connString); 
      conn1.Open(); 
      string itemc = "(select distinct Itemcode from Items where Section1 like 'G%')except(select distinct Itemcode from Items where Section1 like 'H%')"; 
      SqlCommand cmditem = new SqlCommand(itemc, conn1); 
      SqlDataReader dr2 = cmditem.ExecuteReader(); 

      while (dr2.Read()) 
      { 
       itemcode.Items.Add(dr2["Itemcode"].ToString()); 
      } 
      dr2.Close(); 
      conn1.Close(); 
     } 
     else 
     { 
      SqlConnection conn2 = new SqlConnection(connString); 
      conn2.Open(); 
      string itemc1 = "(select distinct Itemcode from Items where Section1 like 'H%')except(select distinct Itemcode from Items where Section1 like 'G%')"; 
      SqlCommand cmditem = new SqlCommand(itemc1, conn2); 
      SqlDataReader dr2 = cmditem.ExecuteReader(); 

      while (dr2.Read()) 
      { 
       itemcode.Items.Add(dr2["Itemcode"].ToString()); 
      } 
      dr2.Close(); 
      conn2.Close(); 
} 
    } 
+0

你確定你的第二個查詢運行併產生正確的結果嗎? – dotNET 2013-03-25 06:40:06

+1

asp.net或windows應用程序? – Arshad 2013-03-25 06:40:27

+0

如果Asp.Net是WebForms或MVC。如果Windows應用程序,它是WinForm或WPF或WinRT? – Aron 2013-03-25 06:41:30

回答

0

我看到的是,如果是

之間
 string itemc = "(select distinct Itemcode from Items where Section1 like 'G%')except(select distinct Itemcode from Items where Section1 like 'H%')"; 

 string itemc1 = "(select distinct Itemcode from Items where Section1 like 'H%')except(select distinct Itemcode from Items where Section1 like 'G%')"; 
實際需要。

剔除這兩個,其餘部分顯示相同。所以只有查詢不能返回結果給你。獨立運行這些查詢,看看你是否得到結果。

0

雖然我討厭在代碼中直接利用連接,讀卡器等,並會建議去的類型化的DataSet的方式,這裏是應爲你工作:

private void section_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    string selected = (string)section.SelectedItem; 
    using(SqlConnection conn1 = new SqlConnection(connString)) 
    { 
     conn1.Open(); 
     string itemc = "select distinct Itemcode from Items where Section1 like 'G%'"; 

     if(selected != "Giftarticles") itemc += " AND Section1 NOT LIKE 'H%'" 

     SqlCommand cmditem = new SqlCommand(itemc, conn1); 
     SqlDataReader dr2 = cmditem.ExecuteReader(); 

     while (dr2.Read()) 
      itemcode.Items.Add(dr2["Itemcode"].ToString()); 

     dr2.Close(); 
     conn1.Close(); 
    } 
} 

這種替換整個上面的代碼。