Monday 6 May 2013

Insert/Edit/Update/Delete data using Ado.Net Entity data model in MVC4

Ado.Net Entity Data Model :






Controller.Cs Code :

using MvcSampleApplication.Models;
using System;
using System.Collections.Generic;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Mvc;

namespace MvcSampleApplication.Controllers
{
    public class EmployeeController : Controller
    {
        private EmployeeEntity db = new EmployeeEntity();
        //
        // GET: /Employee/

        public ActionResult Index()
        {
            var empdata = db.Emp_Table.ToList();
            return View(empdata);
        }

        //
        // GET: /Employee/Details/5

        public ActionResult Details(int id)
        {
            return View();
        }

        //
        // GET: /Employee/Create

        public ActionResult Create()
        {
            return View();
        }

        //
        // POST: /Employee/Create

        [HttpPost]
        public ActionResult Create(Emp_Table emp)
        {
            try
            {
                // TODO: Add insert logic here
                db.Emp_Table.Add(emp);
                db.SaveChanges();

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Employee/Edit/5

        public ActionResult Edit(int id)
        {
            Emp_Table emp = db.Emp_Table.Find(id);
            return View(emp);
        }

        //
        // POST: /Employee/Edit/5

        [HttpPost]
        public ActionResult Edit(int id, Emp_Table emp)
        {
            try
            {
                // TODO: Add update logic here
                db.Entry(emp).State = EntityState.Modified;
                db.SaveChanges();

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }

        //
        // GET: /Employee/Delete/5

        public ActionResult Delete(int id)
        {
            Emp_Table emp = db.Emp_Table.Find(id);
            return View();
        }

        //
        // POST: /Employee/Delete/5

        [HttpPost]
        public ActionResult Delete(int id, FormCollection collection)
        {
            try
            {
                // TODO: Add delete logic here
                Emp_Table emp = db.Emp_Table.Find(id);
                db.Emp_Table.Remove(emp);
                db.SaveChanges();

                return RedirectToAction("Index");
            }
            catch
            {
                return View();
            }
        }
    }
}


Index.Cshtml Code :

@model IEnumerable<MvcSampleApplication.Models.Emp_Table>
 
@{
    ViewBag.Title = "Index";
    Layout = "~/Views/Shared/_Layout.cshtml";
    WebGrid grid = new WebGrid(Model);
}
 
<h2>Index</h2>
 
<p>
    @Html.ActionLink("Create Item""Create")
</p>
 
<table id="tblEmpList"></table>
<table>
    <tr>
        <th>Name</th>
        <th>Designation</th>
        <th>Location</th>
    </tr>
    @foreach (var item in Model)
    { 
        <tr>
            <td>
                @Html.DisplayFor(ModelItem => item.Name)
            </td>
            <td>
                @Html.DisplayFor(ModelItem => item.Designation)
            </td>
            <td>
                @Html.DisplayFor(ModelItem => item.Location)
            </td>
            <td>
                @Html.ActionLink("Edit""Edit"new { id = item.Id })
            </td>
            <td>
                @Html.ActionLink("Delete","Delete",new{id=item.Id})
            </td>
        </tr>   
    }
</table>
 
@grid.GetHtml(columns: new []{ grid.Column("Name"),
grid.Column("Designation"),
    grid.Column("Location"),
    grid.Column("Actions", format: @<text>
 @Html.ActionLink("Edit""Edit"new { id = item.Id })
|
@Html.ActionLink("Delete","Delete",new{id=item.Id})
</text>
 )})


Create.Cshtml Code :

@model MvcSampleApplication.Models.Emp_Table
 
@{
    ViewBag.Title = "Create";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
 
<h2>Create</h2>
<p></p>
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
 
    <fieldset>
        <legend>EmployeeEntity</legend>
        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Name)
                @Html.ValidationMessageFor(model => model.Name)
            </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.Designation)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Designation)
            @Html.ValidationMessageFor(model => model.Designation)
        </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.Location)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Location)
            @Html.ValidationMessageFor(model => model.Location) 
        </div>
        
        <p>
            <input type="submit" value="Create" />
        </p>
    </fieldset>
}
 
<div>
    @Html.ActionLink("Back to List""Index")
</div>
 
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}


Edit.Cshtml Code :

@model MvcSampleApplication.Models.Emp_Table
 
@{
    ViewBag.Title = "Edit";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
 
<h2>Edit</h2>
 
@using (Html.BeginForm()) {
    @Html.ValidationSummary(true)
 
    <fieldset>
        <legend>Emp_Table</legend>
 
        @Html.HiddenFor(model => model.Id)
 
        <div class="editor-label">
            @Html.LabelFor(model => model.Name)
            </div>
            <div class="editor-field">
                @Html.EditorFor(model => model.Name)
                @Html.ValidationMessageFor(model => model.Name)
            </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.Designation)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Designation)
            @Html.ValidationMessageFor(model => model.Designation)
        </div>
        <div class="editor-label">
            @Html.LabelFor(model => model.Location)
        </div>
        <div class="editor-field">
            @Html.EditorFor(model => model.Location)
            @Html.ValidationMessageFor(model => model.Location) 
        </div>
 
        <p>
            <input type="submit" value="Save" />
        </p>
    </fieldset>
}
 
<div>
    @Html.ActionLink("Back to List""Index")
</div>
 
@section Scripts {
    @Scripts.Render("~/bundles/jqueryval")
}


Delete.Cshtml Code :

@model MvcSampleApplication.Models.Emp_Table
 
@{
    ViewBag.Title = "Delete";
    Layout = "~/Views/Shared/_Layout.cshtml";
}
 
<h2>Delete</h2>
 
<h3>Are you sure you want to delete this record?</h3>
<fieldset>
    <legend>EmployeeEntity</legend>
    <div class="display-label">Name</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Name)
    </div>
     <div class="display-label">Designation</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Designation)
    </div>
     <div class="display-label">Location</div>
    <div class="display-field">
        @Html.DisplayFor(model => model.Location)
    </div>
</fieldset>
@using (Html.BeginForm()) {
    <p>
        <input type="submit" value="Delete" /> |
        @Html.ActionLink("Back to List""Index")
    </p>
}

 

2 comments:

  1. Create a XML Serialization and Deserialization in C# windows form?

    I tried code like this....
    //Serialization
    private void Serialize_Click(object sender, EventArgs e)
    {
    List pdetails = new List(); Personal personals = new Personal
    {
    ID = int.Parse(txtsno.Text),
    Name = txtname.Text,
    Phone = long.Parse(txtpno.Text),
    Address = txtaddr.Text
    };
    pdetails.Add(personals);
    XmlSerializer xmlser = new XmlSerializer(typeof(List));

    StreamWriter swtr = new StreamWriter(@"f:\serialize.xml");

    xmlser.Serialize(swtr, pdetails);
    swtr.Close();
    }

    //Deserialization

    private void button3_Click(object sender, EventArgs e) {
    XmlSerializer xmlser = new XmlSerializer(typeof(List));

    StreamReader srdr = new StreamReader(@"f:\serialize.xml");
    Listp = (List)xmlser.Deserialize(srdr);
    srdr.Close();
    }
    i want to use memory stream in serialization for get whole input details,
    while i clicking the button all the times....
    it was add into the existing xml file itself.
    i want sample code for that....
    and also deserialtzation...

    ReplyDelete
  2. so nice article and useful to Dot Net learners. we are also providing Dot NEt online training our Cubtraining global leader in providing in Dot Net course.

    ReplyDelete