Linq删除数据的方法

时间:2024-04-10 20:29:48

作者:坚定的守猴

撰写日期:2019年4月30日

开发软件和关键技术:VS;Linq删除数据

Linq在处理数据时,它有四种处理的方式,就是增删查改。一般处理数据的过程中,前面有了查询、新增和修改的方法给删除作了一定基础上的铺垫,到了删除方法这一步就会变得相对简单了。同属于一种Linq名下的数据处理方式,删除实现的方式和前面也就变化不了多少的。

现在我们就见识一下这删除的方法,感受一下它独特的魅力之处。

由于删除是对于之前原有的数据从数据里面给去掉,但是有些数据不仅仅是单独的一条,在数据里面还包含了其它数据。所以对于这些数据的关系我们得进行一个判断。下面就来看一下学院表的数据关系图
Linq删除数据的方法

学院表里面,还与相对应的专业表、年级表、教师表和班级表连接在一起。这就证明学院信息里面都包含这些表的信息。如果只是单纯的把学院表的信息删除掉的话,那么里面的专业、年级、教师和班级的信息就查不到了,没有学院表的信息作为查询的媒介,这些查不到的信息就存留在数据库里成为那些查不了删不掉且又占空间的垃圾数据。所以考虑到这一点,先把这些信息查出来,如果有的话就先把里面的数据删除了,再把学院表信息删除。这样的话就不会出现那种残留的数据,达到成功删除彻底的效果。

现在我们来看一下这删除的判断
Linq删除数据的方法

使用try catch来捕获数据异常,先从年级信息开始判断,从年级表当中找到与学院表对应的学院ID,然后就等于学院表的那个学院ID。在数据库当中,表与表之间的关系就是通过有彼此ID进行连接的,所以年级表当中有与学院表相对应的学院ID的话,就证明年级表在学院表那里是有相应的数据。因此就要对这些数据进行判断。最后把查出来的年级信息以Count(总行数)的形式查询出来了。

如果查询出来的数据大于零,那就证明就有相对应的年级信息存在,这个时候就不能直接删除这条学院信息,得先把对应得年级信息删除。从图中我们就可以看出来,检测判断有年级信息,提示不能删除。

接下来这些专业和教师的信息判断都是同上。在这里就提一下班级表的判断,因为上面三张表查出来的数据已经包含了班级表的判断所查出来的数据了。所以为了简写代码,就不再判断班级表了。

判断之后我们就可以对学院信息进行重新查询了

Linq删除数据的方法

经过上面的判断筛选,查询出来的学院数据就可以直接进行删除了。

Linq删除数据的方法

删除之后就对删除之后的数据库的信息进行保存。删除成功的话就直接保存,不然就出现删除失败或者参数异常的情况。

在删除的数据方法当中,上面对于数据表的判断就是最重要的一部分。判断这部分完成之后,其他部分就和前面的新增和修改大同小异了。现在我们就来简单的再看一下Js部分的代码。
Linq删除数据的方法

Post(数据请求)获取数据,回调一下函数之后就判断数据的状态,删除之后就刷新一下表格。到这里我们就测一下这删除的效果。

尝试从首页的第一条数据删除,看一下里面有没有相应的信息,能不能的成功的把这里面的数据给判断出来。

Linq删除数据的方法

选中了第一条数据,点击一下删除
Linq删除数据的方法

图中的模态框显示有对应的年级信息,不能删除。这就证明了判断的代码起作用了。

现在删除一条没有这些数据的学院信息
Linq删除数据的方法

选中25那条数据,然后就点击删除按钮

弹出删除的模态框,再点击一下确定的按钮

Linq删除数据的方法

删除成功了。有时候测试的效果是成功了,不过我们也得测试一下失败的情况。在做项目里面,测试失败也算一种成功,因为这样才知道自己写的代码有没有被执行。诙谐的说一句:“失败乃成功之母。”Linq删除数据的方法就到此结束了。