【发布时间】:2020-07-01 14:23:50
【问题描述】:
我正在使用 ASP.NET 4.7 网站将数据从 Excel 文件上传到 SQL Server 数据库。实际上这是一个 DotNetNuke 网站。
我正在使用以下代码。这是我在代码中使用的确切方法。
所以这段代码可以正常工作,我可以将我的 Excel 数据传输到 SQL Server 数据库。
我的问题是传输数据限制。
它没有传输所有数据。当我有更多记录和更多列时,它只传输第一条记录。
通常,我的 Excel 文件大约 3 MB,它有 60 000 条或更多记录。但它只通过了大约 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 2003 的每个工作表 (xls) 限制为 64,000 行。您可以在 2007+ (xlsx) 中拥有更多行。因此,如果您为 oledb 使用 JET 驱动器(或指定 xls 文件名),您将被限制为 64,000 行。最近我发现在最新的带有 xlsx 文件的 excel 中,每个工作表只能导入 1,000,000 行。
-
我只能通过 18151 或类似的东西。如果我删除一些列,那么我可以传递更多。我正在使用
我正在使用我的参考链接中的确切代码问题。 -
您可能只是在第 18151 行有错误数据。试试 IMEX 选项。请参阅:connectionstrings.com/excel。第 1 列的每一行都有数据吗?
-
没有。这不是原因。我使用具有不同数据的不同文件。 18151 是我所说的示例计数。如果我逐列删除,那么记录数会相应增加。
-
拜托,有人帮我吗?我真的很感谢你对我的支持。谢谢。
标签: c# asp.net .net sql-server excel