Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# C中数据库中的空dropdownlist_C#_Sql_Asp.net - Fatal编程技术网

C# C中数据库中的空dropdownlist

C# C中数据库中的空dropdownlist,c#,sql,asp.net,C#,Sql,Asp.net,我正在处理一个遗留代码,我被一个空的DropDownList困住了。代码如下: private void CarregarCheckboxPesquisas() { string sqlConexaoString = ConfigurationManager.ConnectionStrings["Sql_Interno"].ConnectionString; SqlConnection sqlConexao = new SqlConnection(sqlC

我正在处理一个遗留代码,我被一个空的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连接,工作正常。所以,我想一定是别的原因,但我没能发现是什么。我做了研究,但还是一无所获


有什么想法吗?

这里的想法很简单,所以不要批评我,但你确定Listacodesquisas不是空的或空的吗。在将列表添加到下拉列表之前,请查看是否可以输出该列表。它是否也会给你一个错误或者只是显示为空?

试着给它一个索引和项目。像这样插入

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

有错误吗?附加调试器时,调试器是否经过循环且值不为null?是否尝试过DDLPesquisa.Items.InsertDDLPesquisa.Items.Count-1,li?没有,没有错误。这个过程执行得很好,只是列表上没有项目。我现在就试试,发布结果soon@SyedAliTaqi我试过你说的,它显示了一个异常错误,说插入索引超出范围。它必须是非负数且小于或等于大小。其他值导致了错误,所以检查出来,@Diesel298,真的是空的。是的,只是空的,没有错误。它可以工作!真的谢谢你,伙计!为了学习,我也会尝试你建议的另一种方式!