简体   繁体   中英

How to populate dropdown list from database?

So here I'm trying to populate my dropdown list, the code behind is as below:

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

the problem is, I can't seem to get it to work, any help? and is this code doing it right?

plz try below code:

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

Thanks, Hitesh

Can't bind to a SqlDataReader (or at least I've never tried it). Get a DataTable or a DataSet instead, fill it and then bind that to the dropdown the same way.

Use SqlDataAdataper like the one below

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

if you want to use DataReader you must insert one-by-one.

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM