c#利用foreach进行批量新增数据

c#利用foreach进行批量新增数据

·········································································································
开发工具与关键技术: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#

因为第一次发表有许多不懂,未能准确的对文章进行描述,欢迎留言提出文章的存在的为题。数组