【发布时间】:2021-06-07 22:30:16
【问题描述】:
我正在尝试将 Excel 文件导入我的代码,然后使用 NET Core MVC Web 应用程序将其传输到数据库。我想知道 Visual Studios 上的任何很棒的库和可能有很大帮助的链接。现在我正在使用 EPPlus 版本,它从 Excel 文件中获取数据并将其转换为 ToString。
我正在处理的一些代码大部分工作都在方法 import 中当我尝试将数据库和模型设置为使用其他任何东西时,字符串类型会出现如下错误:
当 IDENTITY_INSERT 设置为 OFF 时,无法为表中的标识列插入显式值
我尝试了int.Parse(),但不断出错。我尝试对运行SET IDENTITY_INSERT [StudentsList-2].[dbo].[Student] ON; 的 SQL Server 执行操作,它告诉我命令运行成功,但在运行程序时我不断收到错误消息。任何帮助或链接都会很棒!
using ImportExcel.Models;
using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
using OfficeOpenXml;
using System;
using System.Collections.Generic;
using System.Diagnostics;
using System.IO;
using System.Linq;
using Microsoft.Extensions.DependencyInjection;
using System.Threading.Tasks;
using Microsoft.EntityFrameworkCore;
namespace ImportExcel.Controllers
{
public class HomeController : Controller
{
private readonly ApplicationDbContext _dbContext;
public HomeController(ApplicationDbContext dbContext)
{
_dbContext = dbContext;
}
public IActionResult Index()
{
return View();
}
***public async Task<List<Countries>> Import(IFormFile file)
{
var list = new List<Countries>();
using (var stream = new MemoryStream())
{
await file.CopyToAsync(stream);
using (var package = new ExcelPackage(stream))
{
ExcelWorksheet worksheet = package.Workbook.Worksheets[0];
var rowcount = worksheet.Dimension.Rows;
var colcount = worksheet.Dimension.Columns;
for (int row = 2; row < rowcount; row++)
{
list.Add(new Countries {
CountryId=worksheet.Cells[row,1].Value.ToString().Trim(),
CountryName = worksheet.Cells[row, 2].Value.ToString().Trim(),
TwoCharCountryCode = worksheet.Cells[row, 3].Value.ToString().Trim(),
ThreeCharCountryCode = worksheet.Cells[row, 4].Value.ToString().Trim()
});
}
}
}
//SaveDataToDb(list);
_dbContext.Countries.AddRange(list);
await _dbContext.SaveChangesAsync();
return list;
}***
public IActionResult About()
{
ViewData["Message"] = "Your application description page.";
return View();
}
public IActionResult Contact()
{
ViewData["Message"] = "Your contact page.";
return View();
}
public IActionResult Privacy()
{
return View();
}
[ResponseCache(Duration = 0, Location = ResponseCacheLocation.None, NoStore = true)]
public IActionResult Error()
{
return View(new ErrorViewModel { RequestId = Activity.Current?.Id ?? HttpContext.TraceIdentifier });
}
}
}
【问题讨论】:
-
建议“我想知道 Visual Studios 上任何很棒的库和可能有很大帮助的链接”应该是 softwarerecs.stackexchange.com 上自己的问题
-
@Richard Brescher,你能提供数据库设计吗?我认为这可能是您问题的关键。
标签: asp.net sql-server asp.net-mvc visual-studio epplus