·········································································································
开发工具与关键技术:Visual Studio
做者:Amewin
撰写时间:2019年1月16日
·········································································································java
版权声明:本文为博主原创文章,转载请附上博文连接!
第一次在CDNS发表文章,但愿能给浏览的你,提供帮助。程序员
我要讲的是利用关键字foreach 进行sql数据表批量新增数据。web
我要讲的是利用关键字两个foreach 进行sql数据表批量新增数据。sql
官方解释:C# 也支持 foreach 循环,使用foreach能够迭代数组或者一个集合对象。数据库
public ActionResult InsertGlobal() { ReturnJsonVo retentJson = new ReturnJsonVo(); try { var num = 0; var total = 0; var lsitOpType = myModels.JD_OpType.Select(m => m.OpTypeID).ToList();//查询数据表中主键ID数据集 var lsitModular = myModels.JD_Modular.Select(m => m.ModularID).ToList();//查询数据表中主键ID数据集 foreach (short item in lsitModular)//JD_OpType表的数据集 item是lsitOptype中数据的主键ID { foreach (short i in lsitOpType)//当上个foreach进行执行时,将遍历循环lsitOpType中的数据 进行有选择性新增 { total++;//记录全部循环的次数 var listold = myModels.JD_ModularDetail.Where(m => m.ModularID == item && m.OpTypeID == i).Count();//判断数据表中是否有已存在数据,若是有重复则将返回大于0的参数 if (listold == 0)//必须数据表中没有相关数据,才能执行新增 { JD_ModularDetail list = new JD_ModularDetail(); list.OpTypeID = i; list.ModularID = item; myModels.JD_ModularDetail.Add(list); } else { num++;//记录已存在的数据条数 } } } myModels.SaveChanges(); retentJson.State = true; retentJson.Text = "新增成功!" + (total - num) + "条数据,其中有" + num + "条数据已在权限明细!"; } catch (Exception e) { Console.WriteLine(e);//打印错误说明 retentJson.State = false; retentJson.Text = "失败!"; } return Json(retentJson, JsonRequestBehavior.AllowGet); } //建立类存储返回页面关键关键属性 public class ReturnJsonVo { public bool State { get; set; } public string Text { get; set; } }
我用了两个foreach来完成批量新增功能,能够快速新增数据,避免单条新增数据,节约程序员宝贵的时间。但要谨记其新增数据对数据的判断,避免数据表中新增无用的数据,致使数据库冗余。c#
因为第一次发表有许多不懂,未能准确的对文章进行描述,欢迎留言提出文章的存在的为题。数组