gpt4 book ai didi

excel - 在 ADO.NET 4.0 中处理多个 Excel 文件的多个连接的正确方法是什么?

转载 作者:行者123 更新时间:2023-12-02 09:44:58 24 4
gpt4 key购买 nike

我有一段使用 VS 2005 编写的代码,在运行 .NET 2.0 的计算机中运行良好,但在运行 .NET 4.0 的计算机中严重崩溃。

导致问题的代码部分是对 DataAdapter 的 Fill() 方法的调用。代码如下:

private void button_Click(object sender, EventArgs e)
{
DataTable dt1 = new DataTable();
string connectionString = ... //connects to excelfile1.xls
string selectCommand = "SELECT * FROM [Sheet1$]";

using(OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connectionString))
{
adapter.SelectCommand.Connection.Open();
adapter.Fill(dt1);
}

DataTable dt2 = new DataTable();
connectionString = ... //connects to excelfile2.xls

using(OleDbDataAdapter adapter = new OleDbDataAdapter(selectCommand, connectionString))
{
adapter.SelectCommand.Connection.Open();
adapter.Fill(dt2);
}
}

如果我对代码进行轻微修改,会发生一些事情:

  1. 如果我删除对 OleDbConnection.Open() 的两个调用,代码在 .NET 2.0 上可以正常工作,但在 .NET 4.0 上会严重崩溃。

  2. 如果我仅删除对 OleDbConnection.Open() 的第二次调用,代码将在 .NET 2.0 和 .NET 4.0 上正常工作。唉,我需要从两个单独的 Excel 文件中检索数据,并在每次触发事件时填充两个单独的数据表。

  3. 如果我同时使用对 OleDbConnection.Open() 的调用,如上面的代码所示,该代码将在 .NET 2.0 和 .NET 4.0 上正常工作,但在第二个或第三个 .NET 4.0 上会严重崩溃用户单击按钮并且程序运行的时间。

我的猜测是 .NET 4.0 管理连接的方式与 .NET 2.0 不同,我错过了一些非常重要的步骤。

有人可以告诉我应该如何编写上述代码,使其在 .NET 2.0 和 .NET 4.0 下正常工作吗?

最佳答案

问题出在“应用程序验证程序”。

关于excel - 在 ADO.NET 4.0 中处理多个 Excel 文件的多个连接的正确方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11462649/

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