如何从数据库中填充下拉列表?

时间:2013-06-12 03:43:38

标签: c# asp.net drop-down-menu

所以在这里我试图填充我的下拉列表,背后的代码如下:

 protected void Page_Load(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(CommonFunctions.GetAppDBConnection(Constants.AppID, Constants.TMDDBConnection));
        con.Open();
        SqlCommand mycommand = new SqlCommand("select * from MSUnit", con);
        SqlDataReader ddlvalues = mycommand.ExecuteReader();
        ddlTransactionCategory.DataSource = ddlvalues;
        ddlTransactionCategory.DataTextField = "categoryCode";
        ddlTransactionCategory.DataValueField = "OrgID";
        ddlTransactionCategory.DataBind();


        mycommand.Connection.Close();
        mycommand.Connection.Dispose();
    }

问题是,我似乎无法让它工作,任何帮助?这段代码做得对吗?

3 个答案:

答案 0 :(得分:1)

请尝试以下代码:

protected void Page_Load(object sender, EventArgs e)
{
    SqlConnection con = new SqlConnection(CommonFunctions.GetAppDBConnection(Constants.AppID, Constants.TMDDBConnection));
    con.Open();
    SqlCommand mycommand = new SqlCommand("select * from MSUnit", con);
    SqlDataAdapter adp =new   SqlDataAdapter(mycommand);
    DataSet ds =new DataSet();
    adp.Fill(ds);
    ddlTransactionCategory.DataSource = ds;
    ddlTransactionCategory.DataTextField = "categoryCode";
    ddlTransactionCategory.DataValueField = "OrgID";
    ddlTransactionCategory.DataBind();


    mycommand.Connection.Close();
    mycommand.Connection.Dispose();
}

谢谢, 亚太区首席技术官Matt

答案 1 :(得分:0)

无法绑定到SqlDataReader(或者至少我从未尝试过)。获取DataTable或DataSet,填充它,然后以相同的方式将其绑定到下拉列表。

答案 2 :(得分:0)

使用SqlDataAdataper,如下所示

using (SqlConnection con = new SqlConnection(CommonFunctions.GetAppDBConnection(Constants.AppID, Constants.TMDDBConnection)))
{
        con.Open();
        SqlDataAdapter da = new SqlDataAdapter("select * from MSUnit", con);
        DataTable dt = new DataTable
        da.Fill(dt)
        ddlTransactionCategory.DataSource = dt;
        ddlTransactionCategory.DataTextField = "categoryCode";
        ddlTransactionCategory.DataValueField = "OrgID";
        ddlTransactionCategory.DataBind();
}

如果要使用DataReader,则必须逐个插入。

while (ddlvalues.Read())
{
    ddlTransactionCategory.Items.Add(new ListItem(ddlvalues.getString("OrgID"),ddlvalues.getString("categoryCode"))) 
}