【发布时间】:2020-01-29 08:40:37
【问题描述】:
我的代码有问题。我使用上传的逗号分隔 (CSV) 文件插入我的数据库,其中包含 5 行。第一行成功插入数据库,但在第二个循环插入第二行时遇到错误:
当 IDENTITY_INSERT 设置为 OFF 时,无法为表“bdoToDbs”中的标识列插入显式值。
这是我的循环代码
while (i < users.Count)
{
ViewBag.CompanyCode = users[i].CompanyCode;
ViewBag.ProductCode = users[i].ProductCode;
ViewBag.TransactionDate = users[i].TransactionDate;
ViewBag.TransactionTime = users[i].TransactionTime;
ViewBag.OriginatingBranch = users[i].OriginatingBranch;
ViewBag.CustomerNumber = users[i].CustomerNumber;
ViewBag.TransactionOrigin = users[i].TransactionOrigin;
ViewBag.TypeOfPayment = users[i].TypeOfPayment;
ViewBag.CheckNumber = users[i].CheckNumber;
ViewBag.TransactionAmount = users[i].TransactionAmount;
ViewBag.CustomerName = users[i].CustomerName;
bdoToDb.CompanyCode = ViewBag.CompanyCode;
bdoToDb.ProductCode = ViewBag.ProductCode;
bdoToDb.TransactionDate = ViewBag.TransactionDate;
bdoToDb.TransactionTime = ViewBag.TransactionTime;
bdoToDb.OriginatingBranch = ViewBag.OriginatingBranch;
bdoToDb.CustomerNumber = ViewBag.CustomerNumber;
bdoToDb.TransactionOrigin = ViewBag.TransactionOrigin;
bdoToDb.TypeOfPayment = ViewBag.TypeOfPayment;
bdoToDb.CheckNumber = ViewBag.CheckNumber;
bdoToDb.TransactionAmount = ViewBag.TransactionAmount;
bdoToDb.CustomerName = ViewBag.CustomerName;
bdoToDb.UserName = ViewBag.DisplayName;
bdoToDb.UserIP = HttpContext.Connection.RemoteIpAddress.ToString();
bdoToDb.UserDate = DateTime.Now.ToString("MM/dd/yyyy");
i++;
_context.Add(bdoToDb);
await _context.SaveChangesAsync();
});
return RedirectToAction(nameof(Index));
}
【问题讨论】:
-
顺便说一句,你为什么使用 ViewBag?
-
我有一个获取用户活动目录详细信息的接口,我把它放在了ViewBag中。
-
但是这些值在循环中被覆盖了,所以它只是 ViewBag 中的最后一行
标签: c# asp.net-core-mvc entity-framework-core asp.net-core-2.2 csvhelper