如何为当前处理器体系结构枚举已安装的OleDb提供程序?

时间:2010-05-12 11:38:23

标签: c# oledb dbase

我有一个连接到dBase格式数据库文件的项目,我过去总是使用以下形式的连接字符串完成:

  

PROVIDER = Microsoft.Jet.OLEDB.4.0;数据源= MyData.dbf;扩展属性= dBASE 5.0

我最近不得不重新审视这个问题,并且发现当尝试在x64计算机上创建一个OleDbConnection连接字符串时,它上面有x86安装的Office,它会引发异常。< / p>

快速hack of a fix显示强制应用程序以x86为目标只能使其正常工作,但我希望能够将其整理并提前检查是否无法创建连接,以便我可以自定义我的导入选项以适应可用的提供商。

是否可以枚举当前处理器架构的可用数据提供程序 ? (除了依赖于捕获异常 - 毕竟,框架设计指南建议你应该只抛出特殊情况,并且你有一个方法来检查是否会抛出异常)

1 个答案:

答案 0 :(得分:0)

您可以使用OleDbEnumerator类来查找可用的提供程序。不知道重点是什么,你最终会向用户显示一个空的选择列表。没有64位版本的JET提供程序,没有其他选择。您仍然会收到用户的电话,要求您更改您的计划。只要您想支持JET,就需要将构建目标设置为x86。