数据绑定DropDownList未填充(无错误)

时间:2016-09-01 20:36:07

标签: c# asp.net

我的数据绑定下拉列表没有填充,我在这里看了其他线程,他们似乎没有帮助。我没有收到任何错误或任何内容,我的webform加载只是找到。其他数据库实现正常工作。它必须是我想念的简单事物。我还使用页面加载实现了NULL,但也没有做任何事情。

if(!IsPostBack){ddlBatchCodeBind();

3 个答案:

答案 0 :(得分:0)

我在这里测试它。假设下拉列表格式正确

<asp:DropDownList ID="ddlBatchCodeDel" runat="server" AppendDataBoundItems="true"></asp:DropDownList>

使用finally时,您不需要using。它将为您关闭并处理连接。但是最好将SqlDataAdapter包装在using中,因为它使用了IDisposable接口。

            using (SqlConnection conn = new SqlConnection(GetConnectionString()))
            using (SqlDataAdapter ada = new SqlDataAdapter("SELECT BatchCode, BatchCodeDesc FROM BatchTable", conn))
            {
                try
                {
                    DataTable batch_codes = new DataTable();
                    ada.Fill(batch_codes);
                    ddlBatchCodeDel.DataSource = batch_codes;
                    ddlBatchCodeDel.DataTextField = "BatchCodeDesc";
                    ddlBatchCodeDel.DataValueField = "BatchCode";
                    ddlBatchCodeDel.DataBind();
                }
                catch (Exception ex)
                {
                    //MessageBox.Show(ex.Message);
                }
            }

而且我很确定MessageBox.Show是一个WinForms的东西,而不是一个asp.net的东西。

答案 1 :(得分:0)

这是一种可以在不使用SqlDataAdapter

的情况下绑定到数据表的替代方法
using (SqlConnection conn = new SqlConnection(GetConnectionString()))
using (SqlCommand cmd = new SqlCommand("SELECT BatchCode, BatchCodeDesc FROM BatchTable", conn))
{
    try
    {
        conn.Open();
        DataTable batch_codes = new DataTable();
        batch_codes.Load(cmd.ExecuteReader());
        ddlBatchCodeDel.DataSource = batch_codes;
        ddlBatchCodeDel.DataTextField = "BatchCodeDesc";
        ddlBatchCodeDel.DataValueField = "BatchCode";
        ddlBatchCodeDel.DataBind();
    }
    catch (Exception ex)
    {
        Response.Write(ex.Message);
    }
}

答案 2 :(得分:0)

这不是答案,但我在评论中无法这样说,所以这里是:

请尝试以下代码并报告结果。 (请不要更改Page_Load或其他地方的任何其他内容)

public void ddlBatchCodeDelBind()
{
    var x = new Dictionary<int, string>();
    x.Add(1, "Data 1");
    x.Add(2, "Data 2");
    x.Add(3, "Data 3");

    ddlBatchCodeDel.DataSource = X;
    ddlBatchCodeDel.DataTextField = "Value";
    ddlBatchCodeDel.DataValueField = "Key";
    ddlBatchCodeDel.DataBind();
}