C# linq&回滚

.NET 导入excel文件 异常回滚


在使用TransactionScope的时候必须引用system.Transactions
可以从解决方案管理器中引用,右击“引用” 点击 “添加引用”—“浏览”。
在这里插入图片描述
在这里插入图片描述

找到System.Transactions.dll,点击添加,引入成功。
我的System.Transactions.dll 存放地址:
C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NETFramework\v4.6.1
废话少说,直接上代码

sc.Complete()放在using 里面不然遇到异常不会回滚

using (TransactionScope sc = new TransactionScope())
                {
                    for (int i = 1; i < dt.Rows.Count - 1; i++)
                    {
                        starttime = Convert.ToDateTime(dt.Rows[i][3].ToString());
                        endtime = Convert.ToDateTime(dt.Rows[i][4].ToString());
                                      
                        ExaminationRoom model = new ExaminationRoom();
                        model.ClassroomName = dt.Rows[i][1].ToString();
                        model.SubjectName = dt.Rows[i][0].ToString();
                        model.ExaminationRoomNum = dt.Rows[i][2].ToString();
                        model.StartTime = starttime;
                        model.EndTime = endtime;
                        model.Invigilator = dt.Rows[i][5].ToString();
                        model.ExamNumRange = dt.Rows[i][6].ToString();
                        model.ExamCount = int.Parse(dt.Rows[i][7].ToString());

                        try
                        {
                            db.ExaminationRooms.Add(model);
                            db.SaveChanges();
                            this.SaveOptionLog("添加(导入)", "导入数据,考场:" + model.ExaminationRoomNum);

                            // 导入成功
                            state = "1";
                        }
                        catch
                        {
                            return "行号:" + (i + 2).ToString();
                        }
                    }
                    sc.Complete();
                }
            }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值