How To Bind Dropdownlist In Mvc Using Viewbag from Database

In this tutorial will talk about how to bind dropdownlist in mvc using viewbag from database, this is very easy process.

Step to Bind Dropdown list from Database.

1.Create a country table

2.Insert Country Data in country table

3.Create a procedure and execute.

4.Make Connection in Web Config.

5.Call the procedure from controller.

6.Get the data into Datatable and convert it into list for

7.Store in ViewBag.

Let's See the Above Step in Detail

Create a table in MS SQL Server

Create Databse dotnet
Use dotnet

Create table tbl_country
countryid int identity primary key,
countryname varchar(100)

Insert Data into tbl_country table 

insert into tbl_country(countryname)values('India')
insert into tbl_country(countryname)values('UK')
insert into tbl_country(countryname)values('US')

Create a Procedure

create proc dbo.BindCountryDropDown
  Select countryid,countryname from tbl_country

Make Connection in web Config

    <add name="MYCON" connectionString="Data Source=MSI;Initial Catalog=dotnet;integrated security=true;" />

Call the procedure in HomeController

 public class HomeController : Controller
        SqlConnection con = new     SqlConnection(ConfigurationManager.ConnectionStrings["MYCON"].ConnectionString);
        public ActionResult BindDropDown()

            DataTable dt = new DataTable();
            //Fill Data from Databse here
            SqlCommand cmd = new SqlCommand("BindCountryDropDown", con);
            cmd.CommandType = CommandType.StoredProcedure;
            SqlDataAdapter adp = new SqlDataAdapter(cmd);
            ViewBag.CountryList = BindDropDown(dt);
            return View();
        public static List<SelectListItem> BindDropDown(DataTable dt)
            List<SelectListItem> lst = new List<SelectListItem>();
            if (dt != null && dt.Rows.Count > 0)
                foreach (DataRow item in dt.Rows)
                    lst.Add(new SelectListItem()
                        Text = Convert.ToString(item[1]),
                        Value = Convert.ToString(item[0])
                lst.Add(new SelectListItem() { Text = "--none--", Value = "" });
            return lst;

Bind ViewBag on CsHTML page from controller

    Layout = null;
<!DOCTYPE html>
    <meta name="viewport" content="width=device-width" />
        @Html.DropDownList("ddlRetailer", (List<SelectListItem>)ViewBag.CountryList, "Select Country", new { @id = "ddlCountry" })

Post a Comment

Post a Comment (0)

Previous Post Next Post