开发工具与关键技术:mvc
作者:黄志鹏
撰写时间:2019/5/25
在我们做项目的时候我们经常需要在多个表中来提取我们需要的字段以此来合成我们新的表。这里叫做连表查询,连表查询出来的表格是无数据的,所以我们得往这个新合成的表中新增数据,这里就涉及到了我们的多表新增。多表新增不同于单表新增,单表新增是查询出单表并直接往这个单表中新增并保存即可。而多表新增是往涉及到的所有表都要执行新增保存的操作。而且每一个副表的主键ID都要等于主表的外键ID,而接下来是和单表新增是一样的需要在视图那边写提交的方法,把页面的所有新增的输入框或者是下拉框中的数据全部获取到,然后再把获取到的全部数据通过提交的方法,把它们提交到控制层这边的新增的方法中来。
下面我们来看看多表新增的关键代码,以本人在做项目为例
public ActionResult qqxinmm(churuyuanbingren Churuyuanbingren, bingrengziliao Bingrengziliao, lianxirenxinxi Lianxirenxinxi)
{
ReturnJson returnJson = new ReturnJson();
try
{
myModels.bingrengziliao.Add(Bingrengziliao);
myModels.SaveChanges();
myModels.lianxirenxinxi.Add(Lianxirenxinxi);
myModels.SaveChanges();
Churuyuanbingren.bingrenziliaoID = Bingrengziliao.bingrenziliaoID;
Churuyuanbingren.lianxirenxinxiID =Lianxirenxinxi.lianxirenxinxiID;
myModels.churuyuanbingren.Add(Churuyuanbingren);//主表
if (myModels.SaveChanges() > 0)
{
returnJson.State = true;
returnJson.Text = "保存成功";
}
从这个方法的参数中我们可以看出这里一共涉及到三个表。ReturnJson returnJson = new ReturnJson();这一句代码的意思是记录当前代码的状态。接下来是先新增保存两个副表的内容。
然后便是我们的所有副表的主键ID要等于主表的外键ID,数据库那边的关系图也是如此才能完成多表新增的操作。最后便是新增保存我们的主表了,判断它的状态为true则保存成功,状态为false则保存失败,接下来便是和单表新增一样的操作了,就是在视图那边提交数据了。
这时我们在视图这边开始写新增的提交方法。在新增的提交方法中我们特别需要注意的一点是在获取输入框中的数据的同时我们也要获取到在form表单下面的隐藏域的ID。
代码如下:
<input type="hidden"id=“churuyuanbingren1” name=“churuyuanbingren1” />
接下来便是获取到所有新增的输入框中的数据了。这里只取部分代码,相应代码如下:
function tabxinbao() {
var churuyuanbingren1 = $('#formEmployee input[name="churuyuanbingren1"]').val();
var idnumber = $('#formEmployee input[name="idnumber"]').val();
var lianxirenphone = $('#formEmployee input[name="lianxirenphone"]').val();
var lianxirenname = $('#formEmployee input[name="lianxirenname"]').val();
var chuyuandata = $('#formEmployee input[name="chuyuandata"]').val();
获取到输入框中的值后,我们我们要判断获取到的值不等于空和不等于找不到。 这里只取部分代码,代码如下:
if (
name != '' && name != undefined
)
接下来便是我们的提交的函数了,这里我们一样使用post方法提交。这里只取部分代码,相应代码如下:
$.post("/chummk/chummRuny/qqxinmm", {
churuyuanbingren1:churuyuanbingren1, idnumber: idnumber,
lianxirenname:lianxirenname, chuyuandata: chuyuandata,
}, function (returnJson) {
if (returnJson.State ==true) {
到了这里我们可以新增到数据了,新增完数据后我们要执行刷新表格让新增的数据显示出来。
function (returnJson) {
if (returnJson.State== true) {
churuyuan =layuiTable.reload('churuyuan');
到了这里我们的多表新增也算是完成了。