1
我做了使用下面的連接字符串一個C#應用程序連接到數據庫:奇怪的錯誤與Microsoft.Jet.OLEDB.4.0
DbConnection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + DataBaseFileName + "; Jet OLEDB:Engine Type=5";
我承擔了什麼,我讀了自從Windows 2000 Jet 4.0引擎隨Windows提供。我的應用程序有一個錯誤報告功能,可讓用戶向我發送一個錯誤報告,其中包含關於程序崩潰時的錯誤的一些信息。我的所有數據庫查詢都有嘗試/捕獲,應該阻止應用程序崩潰,除非它連接到數據庫。以下是錯誤報告:
<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& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& 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版本> = 2000,那麼假定Jet 4.0將被安裝是否是錯誤的?
請任何意見將有所幫助。我有點絕望。
看來你正在調用一個不是有效的win32可執行文件/程序集的類。什麼是操作系統的版本?你是如何安裝Jet庫的? – Kangkan 2011-02-08 05:06:38