【问题标题】:OleDB Connection string for reading an Excel file exclusively opened by other user用于读取由其他用户独占打开的 Excel 文件的 OleDB 连接字符串
【发布时间】:2011-08-16 18:18:06
【问题描述】:

谁能告诉我 OleDB 连接字符串用于读取其他用户打开的 Excel 文件 exclusively

我尝试了以下对我不起作用的连接字符串:-

"Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Mode=Read;Extended Properties=\"Excel 8.0;HDR=YES;ReadOnly=true;\"";

此连接字符串被其他用户打开时抛出以下异常:-

The Microsoft Jet database engine cannot open the file ''.  It is already opened exclusively by another user, or you need permission to view its data.

注意事项:

  1. Excel 文件保持共享,以便多个用户可以打开它。
  2. 使用的提供程序:- Microsoft.Jet.OLEDB.4.0
  3. Excel 文件类型:- MS Excel 97-2003 工作表
  4. 不允许复制文件

【问题讨论】:

  • 如果您只想从文件中读取,您可以先创建一个Excel文件的副本,然后使用它删除。
  • 由于多个用户正在编辑excel,如果我们复制文件会产生问题。
  • 是的,我试过了。第一个用户加载包含 100 条记录的复制文件。在他保存它之前,另一个用户向文件中添加了一条记录,并将该文件保存为 101 条记录。现在第一个用户更新第 100 条记录并将复制的文件保存在主文件的顶部。所以最后主文件不会有101条记录。
  • 好吧,我说:如果你只想从文件中读取...。当然,如果你也将数据写入 Excel 文件,它就不会起作用。
  • 那么有什么办法可以处理这种情况吗?

标签: oledb oledbconnection oledbexception


【解决方案1】:

我建议你使用后台线程每隔一段时间重试打开连接,当你连接到excel数据源时,将所有数据读入内存并立即关闭连接,以便其他进程可以访问该文件。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-09-15
    • 2023-03-14
    • 2011-05-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多