【问题标题】:Troubleshooting Could not find installable ISAM error故障排除找不到可安装的 ISAM 错误
【发布时间】:2015-09-25 13:59:58
【问题描述】:

我安装了 32 位 MS Office 2013,以及 32 位 Office 可再发行组件和一个小型 c# 控制台应用程序,设置为编译为 32 位。

以下代码会导致 OleDbException 声明“找不到可安装的 ISAM”。

public void GetData()
{
    var fileName = @"c:\temp\Sales DataBase_Test.accdb";
    var connection = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Soure='" + fileName + "'";
    using (var conn = new OleDbConnection(connection))
    {
        conn.Open();
        conn.Close();
    }
}

我不想从十几个模糊的答案中随机应用解决方案,而是想知道:

  • 这究竟意味着什么?
  • 什么是可安装的 ISAM?
  • 如何获取它们的列表?
  • 我如何知道哪些可用?
  • 最后,我如何知道任何给定计算机上可用的提供程序?
  • 有没有办法列举这些事情并正确排除故障?

【问题讨论】:

  • 在尝试打开 XL 文件或导入/解析具有未知扩展名的平面文件时,通常会出现该错误。您可以尝试 a) 去掉文件名中的空格 - 它可能认为“DataBase...”是扩展名 b) ConnectionStrimngBuilder c) 查看conn.ConnectionString 以查看它是否正确。 (假设你对 32 位的一切都是正确的)
  • 我拼错了“数据源”并花了几个小时寻找错误的东西:(不过仍然想知道我的问题的答案。

标签: c# ms-access oledb isam


【解决方案1】:

我的问题原来是眼睛老化和手指发胖:“数据源”被拼错为“数据源”。

这不能回答我的问题,但可能对其他人有所帮助。我通过链接 Excel 中的数据,然后复制和粘贴,然后删除我不需要的内容,生成了一个有效的连接字符串。

  1. 从访问中获取数据(选择任何表)。

  2. 下一个打开的连接。

  3. 然后您可以查看连接的属性并复制一个工作连接字符串,您可以将其粘贴到您的代码中并进行编辑。

【讨论】:

    猜你喜欢
    • 2012-03-18
    • 2010-10-05
    • 2014-03-05
    • 1970-01-01
    • 1970-01-01
    • 2012-08-01
    相关资源
    最近更新 更多