2013-03-25 2 views
0

Нам нужно добавить значения в поле со списком, выбрав значения из другого поля со списком. Он не выбирает значения, как следует. Выполняется только первая часть if. Введите код: это не работает для нас.Нам нужно добавить значения в combobox, выбрав значения из другого combobox

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

+1

asp.net или приложение для Windows? – Arshad

+0

Если Asp.Net это WebForms или MVC. Если приложение Windows, это WinForm или WPF или WinRT? – Aron

ответ

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%')"; 

.

Исключить эти два, остальные будут такими же. Поэтому только запрос должен не возвращать вам результаты. Выполняйте эти запросы самостоятельно и посмотрите, есть ли у вас результаты для secon.

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(); 
    } 
} 

Заменить весь код выше с этим ,

Смежные вопросы