我正在使用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="<,>,*,%,:,,?"
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;'" />
这解决了我的问题。非常感谢。