【发布时间】: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 位的一切都是正确的) -
我拼错了“数据源”并花了几个小时寻找错误的东西:(不过仍然想知道我的问题的答案。