Microsoft.Jet.OLEDB.4.0的奇怪错误

时间:2011-02-08 04:58:53

标签: .net

我已经创建了一个C#应用程序,它使用以下连接字符串连接到数据库:

DbConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DataBaseFileName + "; Jet OLEDB:Engine Type=5";

我认为自从Windows 2000以来Jet 4.0引擎附带了Windows。我的应用程序有一个错误报告功能,让用户向我发送一个错误报告,其中包含程序崩溃时有关错误的一些信息。我的所有数据库查询都有try / catches应该阻止应用程序崩溃,除非它连接到数据库。这是错误报告:

<Message>Retrieving the COM class factory for component with CLSID {2206CDB2-19C1-11D1-89E0-00C04FD7A829} failed due to the following error: 800700c1  is not a valid Win32 application. (Exception from HRESULT: 0x800700C1).</Message>
<StackTrace>   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean&amp; canBeCached, RuntimeMethodHandleInternal&amp; ctor, Boolean&amp; bNeedSecurityCheck)
    at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache)
    at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean skipCheckThis, Boolean fillCache)
    at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly)
    at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
    at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes)
    at System.Data.OleDb.OleDbConnectionInternal.CreateInstanceDataLinks()
    at System.Data.OleDb.OleDbConnectionInternal.GetObjectPool()
</StackTrace>
<TypeName>System.BadImageFormatException</TypeName>

用户未提供有关错误发生方式的任何说明。 我的程序在安装或运行时不检查任何内容以确保JET引擎已安装或未损坏。这可能是问题吗?如果Windows版本是&gt; = 2000?

,假设安装Jet 4.0是错误的

请提供任何建议。我有点绝望。

1 个答案:

答案 0 :(得分:0)

您运行的是64位操作系统吗?

如果是这样,您应该将.NET应用程序的“平台目标”更改为“x86”而不是“任何CPU”。 (在项目属性中;标签页'构建')。