Introduction
In this quick article you will learn how to bind the data to a DropDownList and ListBox controls in ASP.NET. I know this is very easy but today a novice ASP.NET guy who is my friend on Facebook asked me about this and I created this solution for him.
Look at the animated image that we are going to create in this article.
![image1.gif]()
Binding Data to DropDownList Control
To bind the data to DDL, just place the DDL Control on your web page and write the C# logic in code-behind.
Default.aspx Code
<div>
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true">
</asp:DropDownList>
</div>
C# Code
DropDownList1.Items.Add(new ListItem("Select Customer", ""));
DropDownList1.AppendDataBoundItems = true;
String strConnString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
String strQuery = "SELECT CustomerID, ContactName FROM Customers";
SqlConnection con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = strQuery;
cmd.Connection = con;
try
{
con.Open();
DropDownList1.DataSource = cmd.ExecuteReader();
DropDownList1.DataTextField = "ContactName";
DropDownList1.DataValueField = "CustomerID";
DropDownList1.DataBind();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
con.Dispose();
}
Binding Data to ListBox Control
To bind the data to the LB, just place the LB Control on your web page and write the C# logic in code-behind.
Default2.aspx
<div>
<asp:ListBox ID="ListBox1" runat="server">
</asp:ListBox>
</div>
Default2.aspx.cs
ListBox1.Items.Add(new ListItem("Select Customer", ""));
ListBox1.AppendDataBoundItems = true;
String strConnString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
String strQuery = "SELECT CustomerID, ContactName FROM Customers";
SqlConnection con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = strQuery;
cmd.Connection = con;
try
{
con.Open();
ListBox1.DataSource = cmd.ExecuteReader();
ListBox1.DataTextField = "ContactName";
ListBox1.DataValueField = "CustomerID";
ListBox1.DataBind();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
con.Dispose();
}
If you want to execute some business logic when the user selects the item from a DropDownList, you just need to add another method and call it from the DropDownList's OnSelectedIndexChanged. Find the code below:
Defaulat.aspx
<div>
Select Customer ID
<asp:DropDownList ID="DropDownList1" runat="server" AutoPostBack="true"
OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged">
</asp:DropDownList>
<br /><br /><br />
<hr />
<br />
Company Name: <asp:TextBox ID="txtCompanyName" runat="server"></asp:TextBox>
<br />
Contact Title: <asp:TextBox ID="txtContactTitle" runat="server"></asp:TextBox>
<br />
Address: <asp:TextBox ID="txtAddress" runat="server"></asp:TextBox>
<br />
City: <asp:TextBox ID="txtCity" runat="server"></asp:TextBox>
<br />
Country: <asp:Label ID="lblCountry" runat="server" Text=""></asp:Label>
<br />
</div>
Default.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DropDownList1.Items.Add(new ListItem("Select Customer", ""));
DropDownList1.AppendDataBoundItems = true;
String strConnString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
String strQuery = "SELECT CustomerID, ContactName FROM Customers";
SqlConnection con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = strQuery;
cmd.Connection = con;
try
{
con.Open();
DropDownList1.DataSource = cmd.ExecuteReader();
DropDownList1.DataTextField = "ContactName";
DropDownList1.DataValueField = "CustomerID";
DropDownList1.DataBind();
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
con.Dispose();
}
}
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
String strConnString = ConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
String strQuery = "SELECT * FROM Customers WHERE CustomerID = @CustomerID";
SqlConnection con = new SqlConnection(strConnString);
SqlCommand cmd = new SqlCommand();
cmd.Parameters.AddWithValue("@CustomerID", DropDownList1.SelectedItem.Value);
cmd.CommandType = CommandType.Text;
cmd.CommandText = strQuery;
cmd.Connection = con;
try
{
con.Open();
SqlDataReader sdr = cmd.ExecuteReader();
while (sdr.Read())
{
txtCompanyName.Text = sdr["CompanyName"].ToString();
txtContactTitle.Text = sdr["ContactTitle"].ToString();
txtAddress.Text = sdr["Address"].ToString();
txtCity.Text = sdr["City"].ToString();
lblCountry.Text = sdr["Country"].ToString();
}
}
catch (Exception ex)
{
throw ex;
}
finally
{
con.Close();
con.Dispose();
}
}
I hope you like it. Thanks. Happy Coding!