下面我们来看一下如何在表格上修改数据。
我们主要会用到EntityState和SaveChanges()方法,
前者是用来实现修改功能,使用它只需要执行一次SaveChange()就可以了,这样可以减少数据库的操作。
后者是用来将所有更改的内容保存到数据库中。
知道了EntityState和SaveChanges()方法的作用后,我们接下来开始编写修改的代码,
我们要先把相应的数据库引入,然后再创建视图,再编辑完表格后,我们来进行修改代码的编写:
首先我们运用Bootstrap插件里的模态弹出框模板将修改的模态弹出框制作好,
然后通过find()方法获取到表格数据里的ID,再判断获取到的内容是否为空,
若为空则弹出提示框提示“未能获取到ID”,如图:
若不为空则通过gest()方法将对应的数据从数据库中查询出来并赋值给模态弹出框,
然后再用modal()方法弹出模态弹出框,如图:
接下来是控制器部分,首先运用linq语句查询数据库中的数据,
并判断从表中传递过来的ID是否等于数据库中的ID,
再将变量studentData返回就可以实现修改的模态窗体了。如图:
接下来就是保存修改后的数据部分:首先给saveB添加点击事件,使其在点击时,
获取到修改的模态窗体里的所有数据内容,然后判断它所有获取到的内容是否为空,
若有一个为空则弹出提示框提示“数据不完整,请检查后再提交”。如图:
注:saveB为修改的模态窗体里的保存按钮。
若不为空,则通过post()方法以键值对的形式传递数据,
传递路径为Home控制器下的ModifyStudent,传递方式为post,
然后回调msg,最后再通过window.location.reload()重置表单,
避免下次模态框弹出时还留有上次的数据。代码如图:
接下来是控制器部分:首先设置一个类型为字符串的变量str为空,然后再通过实体类从页面接收数据,并判断所有数据不为空,若有一项为空则str输出“修改的数据不完整,请填写完成后再次提交。”,如图:
注:下图的代码写在上图的空白花括号中。
再判断数据完整后再使用EntityState实现修改,
只需要执行一次SaveChange()就可以了,这样可以减少数据库的操作。
再通过SaveChanges()方法将所有变更的数据保存到数据库中,
若变动的数据大于0则str输出:“修改成功。”,反之则str输出:“修改失败。”。如图:
最后再返回变量str就大功告成了,这样修改的效果就完成了。如图: