Tuesday 19 May 2015

Insert, Update, Delete Operation (CRUD Functionality) in Asp.Net MVC Using Entity Framework C#.Net

 Insert, Update, Delete Operation (CRUD Functionality) in Asp.Net MVC Using Entity Framework C#.Net ,

Note : In this concept we will discuss object as model until now we  have being using entity framework and entities ,Entities are mapped to database table and objects relationship mapping tool like entity Framework,Hibernate etc used to retrieve and save data.

create database test
use test

-- create table student

create table Student
(
RollNo int primary key,
Name varchar(50),
Gender varchar(50),
Course varchar(50),
Dob Date
)

-- create table CourseInfo

create table CourseInfo
(
CourseId int primary key,
CourseName varchar(50)
)


How to add entity Model in Mvc Application is shown below in the given figure………………………

Right click on Model Folder and new Entity Models the steps in form of pictures are given below.


 Next Step


Next Step



Next step we will add Controller  which  name is  HomeController  and  the  code  of  controller  is  given below

 Source Code of HomeController.cs…………………………….

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
// using this namespace
using System.Web.Mvc;
using CrudFunctionalityInMvc.Models;

namespace CrudFunctionalityInMvc.Controllers
{
public class HomeController : Controller
{
//create  instance of  entity class
testEntities tt = new testEntities();
public HomeController()
{

}

// this code for Index  View...................

public ActionResult Index()
{
//var v = from m in tt.Students select m;
return View(tt.Students.ToList());
}

// this code for Create View...................

public ActionResult Create()
{
ViewBag.Course = new SelectList(tt.CourseInfoes, "CourseId", "CourseName");
return View();
}

[HttpPost]
public ActionResult Create(Student ss)
{
tt.Students.Add(ss);
tt.SaveChanges();
return  RedirectToAction("Index");

}
// this code for  Delete  View...................

public ActionResult Delete(string RollNo)
{
int rn = Convert.ToInt32(RollNo);
var st = tt.Students.Where(m => m.RollNo ==rn).Select(m => m).FirstOrDefault();
return View(st);
}

[HttpPost]
public ActionResult Delete(string RollNo, bool? aa)
{
int rn = Convert.ToInt32(RollNo);
var st = tt.Students.Where(m => m.RollNo == rn).Select(m => m).FirstOrDefault();
tt.Students.Remove(st);
tt.SaveChanges();
return RedirectToAction("Index");

}

// this code for  Details  View...................

public ActionResult Details(string RollNo)
{
int rn = Convert.ToInt32(RollNo);
var st = tt.Students.Where(m => m.RollNo == rn).Select(m => m).FirstOrDefault();
return View(st);
}

// this code for Edit View...................

public ActionResult Edit(string RollNo)
{
int rn = Convert.ToInt32(RollNo);
var st = tt.Students.Where(m => m.RollNo == rn).Select(m => m).FirstOrDefault();
return View(st);
}
[HttpPost]
public ActionResult Edit(Student ss)
{
int rn = Convert.ToInt32(ss.RollNo);
var st = tt.Students.Where(m => m.RollNo == rn).Select(m => m).FirstOrDefault();
if (st != null)
{
st.Name = ss.Name;
st.Gender = ss.Gender;
st.Course = ss.Course;
st.Dob = ss.Dob;
tt.SaveChanges();
}
return RedirectToAction("Index");
}

}
}

How to add Index View using  ActionResult Index() which  is  given in HomeController the steps in form of pictures are given below.



Source Code of Index.cshtml…………………………….

@model IEnumerable<CrudFunctionalityInMvc.Models.Student>

@{
Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Index</title>
</head>
<body>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table border="1">
<tr>
<th>
@Html.DisplayNameFor(model => model.RollNo)
</th>
<th>
@Html.DisplayNameFor(model => model.Name)
</th>
<th>
@Html.DisplayNameFor(model => model.Gender)
</th>
<th>
@Html.DisplayNameFor(model => model.Course)
</th>
<th>
@Html.DisplayNameFor(model => model.Dob)
</th>
<th>Action</th>
</tr>

@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.RollNo)
</td>
<td>
@Html.DisplayFor(modelItem => item.Name)
</td>
<td>
@Html.DisplayFor(modelItem => item.Gender)
</td>
<td>
@Html.DisplayFor(modelItem => item.Course)
</td>
<td>
@Html.DisplayFor(modelItem => item.Dob)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { RollNo=item.RollNo }) |
@Html.ActionLink("Details", "Details", new { RollNo=item.RollNo }) |
@Html.ActionLink("Delete", "Delete", new { RollNo=item.RollNo })
</td>
</tr>
}
</table>
</body>
</html>



How to add Create View using  ActionResult Create() which  is  given in HomeController the steps in form of pictures are given below.



Source Code of Create.cshtml…………………………….

@model CrudFunctionalityInMvc.Models.Student

@{
Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Create</title>
<script src="~/Scripts/jquery-1.7.1.js"></script>
<script type="text/ecmascript" >

$(document).ready(function ()
{
$('#ddlCourse').change(function (e)
{
var v = $("#ddlCourse option:selected").text();
$('#Course').val(v);
e.preventDefault();
});

});
</script>
</head>
<body>
<script src="~/Scripts/jquery-1.7.1.min.js"></script>
<script src="~/Scripts/jquery.validate.min.js"></script>
<script src="~/Scripts/jquery.validate.unobtrusive.min.js"></script>

@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

<fieldset>
<legend>Student</legend>

<div class="editor-label">
@Html.LabelFor(model => model.RollNo)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.RollNo)
@Html.ValidationMessageFor(model => model.RollNo)
</div>

<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.Gender)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Gender)
@Html.ValidationMessageFor(model => model.Gender)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.Course)
</div>
<div class="editor-field">
@*  @Html.EditorFor(model => model.Course)
@Html.ValidationMessageFor(model => model.Course)*@
@*@Html.DropDownList("Course","Select")*@

@Html.DropDownList("ddlCourse", new SelectList(ViewBag.Course,"Value","Text"), "--Select Course--")
@Html.Hidden("Course")
</div>

<div class="editor-label">
@Html.LabelFor(model => model.Dob)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Dob)
@Html.ValidationMessageFor(model => model.Dob)
</div>

<p>
<input type="submit" value="Create" />
</p>
</fieldset>
}
<div>
@Html.ActionLink("Back to List", "Index")
</div>
</body>
</html>

How to add Delete View using  ActionResult Delete () which  is  given in HomeController the steps in form of pictures are given below.



Source Code of Delete.cshtml…………………………….

@model CrudFunctionalityInMvc.Models.Student

@{
Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Delete</title>
</head>
<body>
<h3>Are you sure you want to delete this?</h3>
<fieldset>
<legend>Student</legend>

<div class="display-label">
@Html.DisplayNameFor(model => model.RollNo)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.RollNo)
</div>

<div class="display-label">
@Html.DisplayNameFor(model => model.Name)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Name)
</div>

<div class="display-label">
@Html.DisplayNameFor(model => model.Gender)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Gender)
</div>

<div class="display-label">
@Html.DisplayNameFor(model => model.Course)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Course)
</div>

<div class="display-label">
@Html.DisplayNameFor(model => model.Dob)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Dob)
</div>
</fieldset>
@using (Html.BeginForm()) {
<p>
<input type="submit" value="Delete" /> |
@Html.ActionLink("Back to List", "Index")
</p>
}
 </body>
</html>

 How to add Details View using  ActionResult Details() which  is  given in HomeController the steps in form of pictures are given below.




 Source Code of Details.cshtml…………………………….

@model CrudFunctionalityInMvc.Models.Student

@{
Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Details</title>
</head>
<body>
<fieldset>
<legend>Student</legend>

<div class="display-label">
@Html.DisplayNameFor(model => model.RollNo)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.RollNo)
</div>

<div class="display-label">
@Html.DisplayNameFor(model => model.Name)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Name)
</div>

<div class="display-label">
@Html.DisplayNameFor(model => model.Gender)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Gender)
</div>

<div class="display-label">
@Html.DisplayNameFor(model => model.Course)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Course)
</div>

<div class="display-label">
@Html.DisplayNameFor(model => model.Dob)
</div>
<div class="display-field">
@Html.DisplayFor(model => model.Dob)
</div>
</fieldset>
<p>
@Html.ActionLink("Edit", "Edit", new { /* id=Model.PrimaryKey */ }) |
@Html.ActionLink("Back to List", "Index")
</p>
</body>
</html>

 How to add Edit View using  ActionResult Edit() which  is  given in HomeController the steps in form of pictures are given below.

 Source Code of Edit.cshtml…………………………….

@model CrudFunctionalityInMvc.Models.Student

@{
Layout = null;
}

<!DOCTYPE html>

<html>
<head>
<meta name="viewport" content="width=device-width" />
<title>Edit</title>
</head>
<body>
@using (Html.BeginForm()) {
@Html.ValidationSummary(true)

<fieldset>
<legend>Student</legend>

<div class="editor-label">
@Html.LabelFor(model => model.RollNo)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.RollNo)
@Html.ValidationMessageFor(model => model.RollNo)
</div>

<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.Gender)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Gender)
@Html.ValidationMessageFor(model => model.Gender)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.Course)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Course)
@Html.ValidationMessageFor(model => model.Course)
</div>

<div class="editor-label">
@Html.LabelFor(model => model.Dob)
</div>
<div class="editor-field">
@Html.EditorFor(model => model.Dob)
@Html.ValidationMessageFor(model => model.Dob)
</div>

<p>
<input type="submit" value="Edit" />
</p>
</fieldset>
}

<div>
@Html.ActionLink("Back to List", "Index")
</div>
</body>
</html>


Result









0 comments:

Post a Comment