2013-03-25 65 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(); 
    } 
} 

这种替换整个上面的代码。