C#中数据库的空下拉列表

时间:2014-09-08 19:10:32

标签: c# sql asp.net

我正在研究一个遗留代码,而我却陷入了一个空的DropDownList。这是代码:

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连接,它运行正常。所以,我认为它必须是别的东西,但我没有发现什么。我做了我的研究,但仍然没有。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

有点想在这里这么简单所以不要批评我,但你确定listacodPesquisas不是空的或无效的。在将其添加到下拉列表之前,查看是否可以输出列表。它也会给你一个错误或只显示空吗?

答案 1 :(得分:0)

尝试给它indexitems.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());
    }