gpt4 book ai didi

c# - ACE oleDb 驱动程序无法处理巨大的 excel 文件

转载 作者:太空宇宙 更新时间:2023-11-03 17:04:26 24 4
gpt4 key购买 nike

ACE OLEDB 驱动程序是否存在较大文件的已知问题?我正在使用以下代码检索 400Mb xls 文件中的工作表

public string[] GetWorkSheets()
{
var connectionString = "Provider=Microsoft.ACE.OleDb.12.0; data source=c:\filepath\filename.xls; Extended Properties=\"Excel 8.0;IMEX=1;HDR=YES;\"";
DataTable dataTable;
using (OleDbConnection connection = new OleDbConnection(connectionString))
{
connection.Open();//Exception thrown here for large files
dataTable = connection.GetSchema("Tables");
}

int lenght = dataTable.Rows.Count;
string[] worksheets = new string[lenght];
for (int i = 0; i < lenght; i++)
{
worksheets[i] = dataTable.Rows[i]["TABLE_NAME"].ToString();
}
return worksheets;
}

我收到一个 OleDbException 消息,消息是超出系统资源。我不会在循环中调用此函数,也不会在到达此处之前打开任何其他连接。此代码非常适合较小的文件。

我的系统有 4Gb RAM。在 Windows 7 64 位上运行。 Ace 驱动程序也是 64 位的。

知道如何解决这个问题吗?

最佳答案

您使用的是 ACE,所以我假设它是一个 32 位平台。 Win2k3?

您是否尝试过在 boot.ini 中使用/3GB 开关?

除非在 Boot.ini 文件中使用/3GB 开关,否则进程和应用程序的虚拟地址空间仍限制为 2 GB。 http://www.microsoft.com/whdc/system/platform/server/pae/paemem.mspx

使用/3GB,您可以获得额外的 1 GB,这可能就可以解决问题吗?

关于c# - ACE oleDb 驱动程序无法处理巨大的 excel 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4990158/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com