Please Refer the below Example.
HTML
<form id="form1" runat="server">
<div>
<asp:DropDownList ID="ddlDOB" runat="server" AutoPostBack="true" OnSelectedIndexChanged="ddlDOB_SelectedIndexChanged">
</asp:DropDownList>
<br />
<asp:GridView ID="GvPersonalDetails" runat="server" AutoGenerateColumns="false">
<Columns>
<asp:BoundField DataField="Id" HeaderText="Id"></asp:BoundField>
<asp:BoundField DataField="Name" HeaderText="Name"></asp:BoundField>
<asp:BoundField DataField="LastName" HeaderText="LastName"></asp:BoundField>
</Columns>
</asp:GridView>
</div>
</form>
--Creates two procedure one for populate dropdown and other is for populate grid
CREATE Procedure PopulateBirthdate
AS
BEGIN
select Distinct CONVERT(VARCHAR(10),DOB,103) DOB
From Personaldetails
END
CREATE Procedure PopulateDetailsByDOB
@DOB as Varchar(20)
AS
BEGIN
select Id,Name,LastName
From Personaldetails
Where CONVERT(VARCHAR(10),DOB,103)=@DOB
END
/* Coding for Popuate Dropdown and populate grid on selection of date value from dropdownlist */
protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
this.PopulateDOB();
}
}
private void PopulateGrid()
{
string strConnString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand("PopulateDetailsByDOB"))
{
using (SqlDataAdapter sda = new SqlDataAdapter())
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.AddWithValue("@DOB", ddlDOB.SelectedValue.ToString());
cmd.Connection = con;
sda.SelectCommand = cmd;
using (DataTable dt = new DataTable())
{
sda.Fill(dt);
GvPersonalDetails.DataSource = dt;
GvPersonalDetails.DataBind();
}
}
}
}
}
private void PopulateDOB()
{
string strConnString = ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
using (SqlConnection con = new SqlConnection(strConnString))
{
using (SqlCommand cmd = new SqlCommand("PopulateBirthdate"))
{
cmd.CommandType = CommandType.StoredProcedure;
cmd.Connection = con;
con.Open();
SqlDataReader rdr;
rdr = cmd.ExecuteReader();
while (rdr.Read())
{
ddlDOB.Items.Add(rdr[0].ToString());
}
con.Close();
}
}
}
protected void ddlDOB_SelectedIndexChanged(object sender, EventArgs e)
{
this.PopulateGrid();
}