2014-09-08 4 views
0

Я работаю над устаревшим кодом, и я застрял в DropDownList, который пуст. Вот код:Пустой dropdownlist из базы данных в C#

private void CarregarCheckboxPesquisas() 
    { 
     string sqlConexaoString = ConfigurationManager.ConnectionStrings["Sql_Interno"].ConnectionString; 
     SqlConnection sqlConexao = new SqlConnection(sqlConexaoString); 

     ArrayList listaPesquisas = new ArrayList(); 
     ArrayList listacodPesquisas = new ArrayList(); 
     listaPesquisas.Add("Selecione uma pesquisa"); 
     listacodPesquisas.Add(""); 


     try 
     { 
      string sqlComandoString = "SELECT codPesquisa, titulo FROM Pesquisas ORDER BY codPesquisa DESC;"; 
      SqlCommand sqlComando = new SqlCommand(sqlComandoString, sqlConexao); 
      sqlConexao.Open(); 
      SqlDataReader dr1 = sqlComando.ExecuteReader(CommandBehavior.CloseConnection); 
      while (dr1.Read()) 
      { 
       listacodPesquisas.Add(dr1.GetString(0)); 
       listaPesquisas.Add(dr1.GetString(1)); 
      } 
      dr1.Close(); 
      sqlConexao.Close(); 
     } 
     catch (Exception ex) 
     { 
      Debug.WriteLine("########## Erro na obtenção dos valores das questões: " + ex.Message.ToString()); 
     } 

     for (int i = 0; i < listacodPesquisas.Count; i++) 
     { 
      ListItem li = new ListItem(listaPesquisas[i].ToString(), listacodPesquisas[i].ToString()); 
      DDLPesquisa.Items.Add(li); 
      //DDLPesquisa.Items.Add(new ListItem(listaPesquisas[i].ToString, listacodPesquisas[i].ToString())); 
     } 

    } 

Я уже проверил соединение SQL, он работает нормально. Итак, я предполагаю, что это должно быть что-то еще, но я не смог выяснить, что. Я сделал свое исследование и все еще ничего.

Любые мысли?

+0

Есть ли ошибка? Когда вы присоединяете отладчик, он проходит через цикл и значения не равны нулю? – PieterSchool

+0

Вы пробовали 'DDLPesquisa.Items.Insert (DDLPesquisa.Items.Count - 1, li);'? –

+0

Нет, никаких ошибок. Процесс просто выполняется отлично, только без элементов в списке. – MPS

ответ

0

Попробуйте дать ему index и также items.Insert как этот

DDLPesquisa.Items.Insert(0,li); 

Или вы также можете связать ваш DropDownList таким образом:

try 
    { 
     string sqlComandoString = "SELECT codPesquisa, titulo FROM Pesquisas ORDER BY codPesquisa DESC;"; 
     SqlCommand sqlComando = new SqlCommand(sqlComandoString, sqlConexao); 
     sqlConexao.Open(); 
     DDLPesquisa.DataSource = sqlComando.ExecuteReader(); 
     DDLPesquisa.DataTextField = "titulo"; 
     DDLPesquisa.DataValueField = "codPesquisa"; 
     DDLPesquisa.DataBind(); 
     sqlConexao.Close(); 
    } 
    catch (Exception ex) 
    { 
     Debug.WriteLine("########## Erro na obtenção dos valores das questões: " + ex.Message.ToString()); 
    } 
+1

Он работает! Очень благодарен, мужик! Я попробую по-другому, как ты предложил, для обучения! – MPS

1

Kinda мышление просто здесь, поэтому не критикуйте меня, но вы уверены, что listacodPesquisas не пуст или нулевая. Посмотрите, можете ли вы вывести список, прежде чем добавлять его в раскрывающийся список. Также он дает вам ошибку или просто показывает пустой?

+0

Проверено, @ Diesel298, действительно пуст. И да, просто пусто, никаких ошибок. – MPS

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