C# 为什么在多次更新Excel单元格时会出现OLEDBEException?

C# 为什么在多次更新Excel单元格时会出现OLEDBEException?,c#,excel,exception,oledb,C#,Excel,Exception,Oledb,我正在使用以下代码更新Excel文件中的单元格 public bool WriteChange(string Filename, string SheetName, string Cell, string Value) { if(!System.IO.File.Exists(Filename)) { throw new System.IO.FileNotFoundException("File \"" + Filename + "\" could not be f

我正在使用以下代码更新Excel文件中的单元格

public bool WriteChange(string Filename, string SheetName, string Cell, string Value)
{
    if(!System.IO.File.Exists(Filename))
    {
        throw new System.IO.FileNotFoundException("File \"" + Filename + "\" could not be found");
    }
    bool result = false;
    string ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Filename + ";Mode=ReadWrite;Extended Properties=\"Excel 8.0;HDR=NO;\"";
    string SQL = "UPDATE [" + SheetName + Cell + ":" + Cell + "] SET F1='" + Value + "'";

    using(OleDbConnection Connection = new OleDbConnection(ConnectionString))
    {
        Connection.Open();
        using(OleDbCommand cmd = new OleDbCommand(SQL,Connection))
        {
            int value = cmd.ExecuteNonQuery();
            if(value > 0)
            {
                result = true;
            }
        }
    }
    return result;
}
这很好,除非我尝试多次更新同一单元格。使用此功能更新单元格后,可以再次使用此功能对其进行更新。如果我再次尝试更新单元格;即使在重新启动应用程序后,我也会得到一个
OleDbException:System Resource extered

我知道,如果您正在创建一组到电子表格的连接(例如,在循环中),通常会收到此异常,但我在每次应用程序运行时只连接一次。典型的工作流程是

  • 启动应用程序
  • 调用
    WriteChange
  • 退出应用程序

当我再次尝试连接时,连接应该早已停止,为什么会出现此错误?

使用以下连接字符串,因为Microsoft.Jet.OLEDB.4.0存在此错误

string ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + @Filename + ";Extended Properties=\"Excel 12.0;HDR=No;\"";

我认为发生错误的原因可能是您没有关闭OLEDB连接。
完成更新查询--`int value=cmd.ExecuteNonQuery()后关闭数据库连接

也许这可以帮助你@BrijeshMishra,正如我在问题中所说的,如果我创建了一堆连接,我会期望出现这种异常。然而,在我的例子中,我只创建了一个连接。它是web应用程序吗?若并没有试着在其他机器上运行它来排除驱动程序的问题?最奇怪的。我完全复制了您的代码,多次向同一单元格写入代码都没有问题。我使用的是VS2010、Windows 7、Excel 2010,工作簿保存为2003(.xls)格式。我使用了不同的电子表格,我也不能重复这个问题。他正在创建与using block的连接,因此它将在超出范围时关闭。