修改和删除
上次写了一些关于新增的内容,这里就接着写一些修改和删除的内容吧。
-
修改:
修改和新增其实差不多,不同的是,修改必须要调用id。修改内容要在进行修改之前通过id查询要修改信息的表。public ActionResult 封装的修改方法名(int 参数名) { try { 要修改信息的表 变量名 = (from 自定义表名 in 实例化的模型.要修改信息的表 where 自定义表名.id == 参数名 select 自定义表名).Single(); return Json(变量名, JsonRequestBehavior.AllowGet); } catch (Exception e) { Console.WriteLine(e); return Json("", JsonRequestBehavior.AllowGet); } }
在封装方法时,要用int类型确定一个参数,这个参数是要传输到页面上的;
方法开始用了try…catch 语句补捉错误,然后用了Linq查询语句,因为id具有唯一性,所以Linq查询语句最后用了Single()方法,Single()方法的作用是返回序列的唯一元素。
修改的三个步骤与新增的三个步骤差不多:
(1) 第一步判断页面传输过来的数据内容是否为空,与新增的第一步一样,代码也是一样的,这里就不列举了,有兴趣可以到新增那里看看。
(2) 第二步同样也是将页面传输过来的数据与已经存在的数据相比较,判断页面传输过来的数据是否与已经存在的数据相重复。但是修改的代码与新增有一些差别,上面我说过了修改信息必须要调用id,修改的查重也是,在进行Linq语句查询的时候必须要调用Id,并且,修改的数据信息也要经过Trim()转换。
int 变量名 = (from 自定义表名 in 实例化的模型.要修改信息的表
where 自定义表名.id != 传递的参数名.id &&
(自定义表名.要修改的信息 == 传递的参数名. 要修改的信息.Trim())
select 自定义表名).Count();
(3)第三步执行修改操作,也与新增相差无几。
传递的参数接收了修改的数据,然后传输到数据库。
实例化的模型.Entry(传递的参数名).State = EntityState.Modified;
if (实例化的模型.SaveChanges() > 0)
{
returnJson.State = true;
returnJson.Text = "修改成功";
}
else
{
returnJson.State = false;
returnJson.Text = "修改失败";
}
-
删除:
删除是新增、修改、删除中最简单的,只有一个步骤。
删除在封装方法时,与新增和修改不同,不是确定参数接收表的数据,而是要用int类型确定一个参数,这个参数是要传输到页面上的。public ActionResult 封装的删除方法名(int 参数名)
方法里面同样是实例化实体类,然后用try…catch 语句补捉错误,最后return返回值。但中间只需要一个Linq查询语句查询表的id,然后就可以执行删除操作了。
要删除信息的表 变量名 = (from 自定义表名 in 实例化的模型.要删除信息的表
where 自定义表名.id != 传递的参数名.id == 参数名
select 自定义表名).Single();
实例化的模型. 要删除信息的表.Remove(变量名);
if (myModel.SaveChanges() > 0)
{
returnJson.State = true;
returnJson.Text = "删除成功";
}
else {
returnJson.State = false;
returnJson.Text = "删除失败";
}