Here’s the sample SQL Server table that I am using in my example. Create the table and add few data to it.
In the markup section, I have added an HTML <select> element, with few attributes. The onchange event will show the selected values in dropdown list.
Note: You can call a JavaScript function from the onchange event.
<select id="ddlBooks" runat="server"
onchange="
if(this.selectedIndex !=0)
document.getElementById('pValue').innerHTML = 'You choose: ' + this.value;
else
document.getElementById('pValue').innerHTML = '';">
</select>
<%--SHOW SELECT VALUE.--%>
<p id="pValue"></p>Now let’s populate the <select> element with data from a database table. Don’t forget to add the runat attribute with the value as server.
Related: How to Bind a DropDownList to a Database table in GridView using C# and VB.Net
I have written the data binding procedure inside the page load event. I am data binding the <select> element using a DataSet object.
The procedure is very similar to binding a GridView control in Asp.Net using a DataSet. You must check the link as I have explained about DataSet and its benefits.
using System;
using System.Data;
using System.Data.SqlClient;
public partial class SiteMaster : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
// SET THE CONNECTION STRING.
string sCon = "Data Source=DNA;Persist Security Info=False;Integrated Security=SSPI;" +
"Initial Catalog=DNA_Classified;User Id=sa;Password=demo;Connect Timeout=30;";
using (SqlConnection con = new SqlConnection(sCon))
{
using (SqlCommand cmd = new SqlCommand("SELECT BookName FROM dbo.Books"))
{
SqlDataAdapter sda = new SqlDataAdapter();
try
{
cmd.Connection = con;
con.Open();
sda.SelectCommand = cmd;
// INITIALIZE DATASET OBJECT.
DataSet ds = new DataSet();
sda.Fill(ds);
// BIND DATABASE TO SELECT.
ddlBooks.DataSource = ds;
ddlBooks.DataTextField = "BookName";
ddlBooks.DataValueField = "BookName";
ddlBooks.DataBind();
// SET THE DEFAULT VALUE.
ddlBooks.Items.Insert(0, "- SELECT -");
}
catch (Exception ex)
{ // }
}
}
}
}Option Explicit On Imports System.Data ' FOR "DataSet". Imports System.Data.SqlClient Partial Class Site Inherits System.Web.UI.MasterPage Protected Sub Page_Load(sender As Object, e As System.EventArgs) Handles Me.Load ' SET THE CONNECTION STRING. Dim sCon As String = "Data Source=DNA;Persist Security Info=False;Integrated Security=SSPI;" & _ "Initial Catalog=DNA_Classified;User Id=sa;Password=demo;Connect Timeout=30;" Using con As SqlConnection = New SqlConnection(sCon) Using cmd As SqlCommand = New SqlCommand("SELECT BookName FROM dbo.Books") Dim sda As SqlDataAdapter = New SqlDataAdapter Try cmd.Connection = con : con.Open() sda.SelectCommand = cmd Dim ds As DataSet = New DataSet sda.Fill(ds, "dbo.Books") ' BIND DATABASE TO SELECT. ddlBooks.DataSource = ds ddlBooks.DataTextField = "BookName" ddlBooks.DataValueField = "BookName" ddlBooks.DataBind() ' SET THE DEFAULT VALUE. ddlBooks.Items.Insert(0, "- SELECT -") Catch ex As Exception ' End Try End Using End Using End Sub End Class
