2014-01-13 182 views
0

我正在使用VS 2010與MS Access 2010. Microsoft Access數據庫引擎2010也安裝。 OS版本是帶有64位操作系統的Window 7 Enterprise。SEHException外部組件已引發異常

下面是我的代碼,我收到異常。我也粘貼堆棧軌道。

DCXManagerTableAdapters.AppDefaultOptionTableAdapter dataAdapter = new DCXManagerTableAdapters.AppDefaultOptionTableAdapter(); 

dataAdapter.Connection.ConnectionString = DB.ConnectionString; 

if (dataAdapter.Connection.State == ConnectionState.Closed) 

{dataAdapter.Connection.Open();} \* Here i am getting exception 

內部異常:System.Runtime.InteropServices.SEHException (0X80004005):外部組件引發的異常。在 System.Data.OleDb.DataSourceWrapper.InitializeAndCreateSession在 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString 構造,OleDbConnection的連接)在 System.Data.OleDb.OleDbConnectionFactory(OleDbConnectionString 構造,SessionWrapper & sessionWrapper)。創建連接(DbConnectionOptions 選項,DbConnectionPoolKey poolKey,對象poolGroupProviderInfo, 池類DBConnectionPool,的DbConnection owningObject)在 System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions 選項,DbConnectionPoolKey poolKey,對象poolGroupProviderInfo, 池類DBConnectionPool,的DbConnection owningConnection, 個DbConnectionOptions USEROPTIONS)在 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(的DbConnection owningConnection,DbConnectionPoolGroup poolGroup,DbConnectionOptions USEROPTIONS)在 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(的DbConnection owningConnection,TaskCompletionSource 1 retry, DbConnectionOptions userOptions, DbConnectionInternal oldConnection, DbConnectionInternal& connection) at System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection, DbConnectionFactory connectionFactory, TaskCompletionSource 1重試,DbConnectionOptions USEROPTIONS )在在 System.Data.ProviderBase.DbConnectionInternal.OpenConnection System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(的DbConnection outerConnection,DbConnectionFactory connectionFactory的, TaskCompletionSource`1重試,DbConnectionOptions USEROPTIONS)(的DbConnection outerConnection,DbConnectionFactory connectionFactory的)在 System.Data.OleDb.OleDbConnection.Open()在 Branson.DataAccess.Providers.GraphTabProvider.GetAppDefaultOption()在 d:\ BRANSON-SVN \解\ Branson.DataAccess \提供商\ GraphTabProvider的.cs:線 180在Branson.Controller.GraphTabController.GetAppDefaultOption() 在 d:\ BRANSON-SVN \解\ Branson.Controller \ GraphTabController.cs:線 37在Branson.DCXManager.App.OnStartup(StartupEventArgsË )在 D:\ BRANSON-SVN \ Solution \ Branson.DCXManager \ Branson.DCXManager \ App.xaml.cs:行 174在System.Windows.Application。 < .ctor> b__1(對象未使用的)在 System.Windows.Threading.ExceptionWrapper.InternalRealCall在 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(對象 源(代表 回調,對象指定參數時,的Int32 numArgs),委託方法,對象指定參數時,的Int32 numArgs,代表 catchHandler)

+0

它看起來像錯誤是打開連接到數據庫。你的連接字符串是什麼? –

+0

你有沒有想過這個? –

回答

0

如果這方面曾經工作和停止它可能是由於打開的句柄到文件中。

您需要確保沒有其他進程持有訪問文件或excel文件的句柄。

您可以使用Process Explorer輕鬆完成此操作,這是一個調試應用程序,它是Sysinternals Suite的一部分。

您可以下載進程瀏覽器作爲一個獨立的應用程序在這裏: https://technet.microsoft.com/en-us/sysinternals/bb896653

  1. 打開「進程監視器」
  2. 選擇主工具欄
  3. 選擇在「查找」選項卡「查找處理或DLL ...'
  4. 輸入您希望查詢的文件,即'MyExcel.xls'和一個列表 您文件的所有句柄都會出現。
  5. 接下來,關閉任何應用程序持有你的文件,並嘗試再次運行你的應用程序 。
相關問題