mvc+linq+EF对数据表的查删改

         /// 
        /// 查询数据库中学生姓名
        /// 
        /// 
        public ActionResult Index()
        {
            //使用linq,查询数据上下文中的学生姓名
            List list = (from d in db.T_student select d).ToList();

            //将集合数据传给视图
            ViewData["DataList"] = list;
            return View();
        } 

  

         	/// 
        /// 根据学生ID删除学生
        /// 
        /// 学生ID
        /// 
        public ActionResult Del(string id)
        {
            //创建要删除的实体,并将ID赋值给实体对象
            T_student modelDel = new T_student() { studentId = id };

            //将实体对象添加到EF管理容器
            db.T_student.Attach(modelDel);

            //将实体对象包装类标示为删除状态
            db.T_student.Remove(modelDel);

            //更新数据库
            db.SaveChanges();

            //更新成功,跳转到Index
            return RedirectToAction("Index","MyClass");}

  

#region 显示要修改的数据
    [HttpGet]
        /// 
        /// 显示要修改的数据
        /// 
        /// 要修改的学生ID
        /// 
        public ActionResult Modify(string id)
        {
            //根据学生ID,查询数据库,返回集合中拿到第一个实体对象
            T_student ts = (from a in db.T_student where a.studentId == id select a).FirstOrDefault();

            //查询课程名称
            IEnumerable listItem=(from c in db.T_class select c).ToList().Select(c=>new SelectListItem{Value=c.classId.ToString(),Text=c.className});
            
            //查询到的课程名称给Viewbag
            ViewBag.classList = listItem;

            //使用View,将数据传给视图上名为model的属性
            return View(ts);
        } 
        #endregion


        #region 保存要修改的数据
        [HttpPost]
        /// 
        /// 保存要修改的数据
        /// 
        /// 要修改的学生ID
        /// 
        public ActionResult Modify(T_student ts)
        {
            //将实体对象加入EF对象容器中,并获取包装类对象
            DbEntityEntry entry=db.Entry(ts);

            //将包装类设置为unchange
            entry.State = System.Data.EntityState.Unchanged;

            //设置被改变的属性
            entry.Property(a=>a.studentName).IsModified=true;
            entry.Property(a => a.classId).IsModified = true;

            //提交更新到数据库
            db.SaveChanges();

            //更新成功,跳转到Index
            return RedirectToAction("Index", "MyClass");
        }
        #endregion

   3.添加查询列表视图(Index.cshtml)

@using MyMvcTest.Models
@{
    Layout = null;
}





    
    Index
    


    
        @foreach (T_student student in ViewData["DataList"] as List)
        {
        
        }
    
id 姓名 课程ID 编辑
@student.studentId @student.studentName @student.classId 删除 修改

  添加“修改”视图(modify.cshtml)

@model MyMvcTest.Models.T_student
@{
    Layout = null;
}





    
    Modify
    


    @using (Html.BeginForm("Modify", "MyClass", FormMethod.Post))
{
    
修改:@Html.HiddenFor(a=>a.studentId)
课程名称 @Html.DropDownListFor(a => a.classId, ViewBag.classList as IEnumerable)
学生姓名 @Html.TextBoxFor(a => a.studentName)
@Html.ActionLink("返回", "Index", "MyClass")
}

  

转载于:https://www.cnblogs.com/Aamir-Ye/p/4584725.html

你可能感兴趣的:(mvc+linq+EF对数据表的查删改)