.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();
}
}