将数据从Excel复制到SQL数据库-不上载所有记录



我正在使用ASP将数据从Excel文件上传到SQL Server数据库。NET 4.7网站。实际上这是一个DotNetNuke网站。

我正在使用以下代码。这正是我在代码中使用的方法。

https://www.aspsnippets.com/Articles/Import-Excel-data-to-SQL-Server-Database-in-ASPNet-using-C-and-VBNet.aspx

因此,这段代码正在运行,我可以将Excel数据传输到SQL Server数据库。

我的问题是传输数据的限制。

它并没有传输所有的数据。当我有更多的记录和列时,它只传输第一条记录。

通常,我的Excel文件大约是3 MB,它有6万条或更多的记录。但它只通过了约18000-25000项记录。当我删除一些Excel列并只传递少数列时,会增加记录的数量。当我只上传一列时,它就会传递所有记录。当我逐个添加列时,复制的记录数量就会减少。

我觉得,我们能通过的数据是有限的。我该怎么增加?

web.config中,我更改了如下设置:

<!-- allow large file uploads -->
<httpRuntime targetFramework="4.7.2" shutdownTimeout="21600" 
executionTimeout="60000" useFullyQualifiedRedirectUrl="true" 
maxRequestLength="2097151" requestLengthDiskThreshold="2097151" 
maxUrlLength="2048" requestPathInvalidCharacters="&lt;,&gt;,*,%,:,,?" 
enableVersionHeader="false" requestValidationMode="2.0" 
fcnMode="Single" />

但运气不好。这并没有改变任何事情。

对此,我还应该考虑什么?

  • 服务器设置?(我有RDP访问权限(
  • 应用程序池设置
  • 网站设置
  • SQL Server设置
  • 数据库设置
  • 我使用的代码有限制吗

你能就此提出建议吗?我真的很感谢你在这方面的支持。

谢谢。

我找到了这个问题的解决方案。

我用我的连接字符串到excel文件,就像这样。

<add name="Excel07+ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES;'" />

我添加了'IMEX=1;'就像下面一样。

<add name="Excel07+ConString" connectionString="Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties='Excel 8.0;HDR=YES;IMEX=1;'" />

这解决了我的问题。非常感谢。

最新更新