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

本文介绍了一种利用C#的foreach循环进行数据库批量插入的方法,通过双重foreach循环实现高效数据新增,避免了单条数据插入的繁琐,节省了开发时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

·········································································································
开发工具与关键技术:Visual Studio
作者:Amewin
撰写时间:2019年1月16日
·········································································································

版权声明:本文为博主原创文章,转载请附上博文链接!
第一次在CDNS发表文章,希望能给浏览的你,提供帮助。

我要讲的是利用关键字foreach 进行sql数据表批量新增数据。

我要讲的是利用关键字两个foreach 进行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来完成批量新增功能,可以快速新增数据,避免单条新增数据,节约程序员宝贵的时间。但要谨记其新增数据对数据的判断,避免数据表中新增无用的数据,导致数据库冗余。

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值