2017-02-13 3 views
0

Я искал похожие вопросы, но ни один из них не применился к моей ситуации. Итак, у меня есть список, который должен заполнить данные в зависимости от выбранного элемента из поля со списком. Код работал нормально, но из-за некоторых изменений, внесенных в программное обеспечение, мне пришлось создать новую форму, скопировать/вставить дизайн и код в новую форму. Я выполнил необходимые настройки, но теперь все поля со списками заполняются и список не будет. Можно anyoe сказать, почему, код:C# listbox не заполняется

using System; 
using System.Data; 
using System.Windows.Forms; 
using XXXXX.bin; 
using System.Data.SqlClient; 
using System.IO; 
using System.Drawing.Imaging; 
using System.Linq; 


namespace XXXXX 
{ 
    public partial class vidro : Form 
    { 
     public static SqlConnection con = Globais.GetDbConection(); 
     public vidro() 
     { 
      InitializeComponent(); 
     } 
     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 SDA4 = new SqlDataAdapter("select distinct sel from vidros", con); 
      DataTable DTT4 = new DataTable(); 
      SDA4.Fill(DTT4); 
      select.Items.Clear(); 
      foreach (DataRow ROW in DTT4.Rows) 
      { 
       select.Items.Add(ROW["sel"].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 desempenho_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      FillData(); 
     } 
     private void valu_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      FillData(); 
     } 
     private void fsolar_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      FillData(); 
     } 
     private void selec_SelectedIndexChanged(object sender, EventArgs e) 
     { 
      FillData(); 
     } 
     private void compo_SelectedIndexChanged(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 [desc],[enchimento],[compo] from vidros where 1=1 "; 
      string queryWhere = ""; 
      SqlDataAdapter sda = new SqlDataAdapter(); 
      SqlCommand cmd = new SqlCommand(); 
      cmd.Connection = con; 
      sda.SelectCommand = cmd; 

      if (combo1value != "") 
      { 
       queryWhere += " and desempenho = @emp "; 
       sda.SelectCommand.Parameters.Add("@emp", SqlDbType.NVarChar).Value = combo1value; 
      } 
      if (combo2value != "") 
      { 
       queryWhere += " and valu = @emp2 "; 
       sda.SelectCommand.Parameters.Add("@emp2", SqlDbType.NVarChar).Value = combo2value; 
      } 
      if (combo3value != "") 
      { 
       queryWhere += " and fs = @emp3 "; 
       sda.SelectCommand.Parameters.Add("@emp3", SqlDbType.NVarChar).Value = combo3value; 
      } 
      if (combo4value != "") 
      { 
       queryWhere += " and sel = @emp4 "; 
       sda.SelectCommand.Parameters.Add("@emp4", SqlDbType.NVarChar).Value = combo4value; 
      } 
      if (combo5value != "") 
      { 
       queryWhere += " and compo = @emp5 "; 
       sda.SelectCommand.Parameters.Add("@emp5", SqlDbType.NVarChar).Value = combo5value; 
      } 

      sda.SelectCommand.CommandText = query + queryWhere; 

      DataTable DTT = new DataTable(); 

      sda.Fill(DTT); 
      listView1.Items.Clear(); 
      for (int i = 0; i < DTT.Rows.Count; i++) 
      { 
       DataRow dr = DTT.Rows[i]; 
       ListViewItem listitem = new ListViewItem(dr["desc"].ToString()); 
       listitem.SubItems.Add(dr["enchimento"].ToString()); 
       listitem.SubItems.Add(dr["compo"].ToString()); 
       listView1.Items.Add(listitem); 
      } 
     } 
+0

Если все то же самое, и вы скопировали его, возможно, вы забыли подключить обработчики событий к выпадающим спискам? – EpicKip

+0

@EpicKip привет, вот и все, спасибо, пожалуйста, ответьте и плохо выберите свой пост в качестве ответа. – septaug

+0

Рад, что это было легко исправить, опубликовал общий ответ для людей, которые воссоздали их форму тоже – EpicKip

ответ

3

Поскольку вы перенесли код на новую форму вам нужно будет подключить обработчик событий для элементов управления.

Это можно сделать в конструкторе, выбрав элемент управления и собирается лепестком событий (форма молнии рядом свойств)
enter image description here

Или в коде, выполнив: controlName.EventName += eventHandlerMethodName;
Пример: button1.Click += button1_Click;

2

Убедитесь, что имена элементов управления (ComboBox и Listbox) те же, что и в скопированном коде, и после этого добавьте список событий для каждого элемента управления.

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