首页 文章

SEHException外部组件抛出异常

提问于
浏览
0

我正在使用VS 2010与MS Access 2010.还安装了Microsoft Access数据库引擎2010 . 操作系统版本是带有64位操作系统的Window 7 Enterprise .

下面是我的代码,我得到了例外 . 我也粘贴堆栈轨道 .

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(OleDbConnectionString构造,SessionWrapper&sessionWrapper)在System.Data.OleDb.OleDbConnectionInternal..ctor在System.Data.OleDb.OleDbConnectionFactory.CreateConnection(OleDbConnectionString构造,OleDbConnection的连接)(DbConnectionOptions选项,DbConnectionPoolKey System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection上的System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions选项,DbConnectionPoolKey poolKey,Object poolGroupProviderInfo,DbConnectionPool池,DbConnection owningConnection,DbConnectionOptions userOptions)中的poolKey,Object poolGroupProviderInfo,DbConnectionPool池,DbConnection owningObject) (DbConnection owningConnection,DbConnectionPoolGroup poolGroup,DbConnectionOptions userOptions)在System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection,TaskCompletionSource1 retry,DbConnectionOptions userOpti) System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionSource`)上的System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection outerConnection,DbConnectionFactory connectionFactory,TaskCompletionSource1 retry,DbConnectionOptions userOptions)中的ons,DbConnectionInternal oldConnection,DbConnectionInternal&connection)在System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection,DbConnectionFactory connectionFactory)上的System.Data.OleDb.OleDbConnection.Open()处于D的Branson.DataAccess.Providers.GraphTabProvider.GetAppDefaultOption()中的1次重试,DbConnectionOptions userOptions): \ BRANSON-SVN \ Solution \ Branson.DataAccess \ Providers \ GraphTabProvider.cs:位于D:\ BRANSON-SVN \ Solution \ Branson.Controller \ GraphTabController.cs:第37行的Branson.Controller.GraphTabController.GetAppDefaultOption()第180行Branson.DCXManager.App.OnStartup(StartupEventAr gs e)在System.Windows的D:\ BRANSON-SVN \ Solution \ Branson.DCXManager \ Branson.DCXManager \ App.xaml.cs:第174行的System.Windows.Application . < . ctor> b__1(Object unused) . 在MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(对象源,委托方法,对象args,Int32 numArgs,Delegate catchHandler)的Threading.ExceptionWrapper.InternalRealCall(委托回调,对象args,Int32 numArgs)

1 回答

  • 0

    如果此连接一旦工作并且已停止,则可能是由于文件的打开句柄 .

    您需要确保没有其他进程持有访问文件或excel文件的句柄 .

    您可以使用Process Explorer轻松完成此操作,这是一个调试应用程序,它是Sysinternals Suite的一部分 .

    您可以在此处下载Process Explorer作为独立应用程序:https://technet.microsoft.com/en-us/sysinternals/bb896653

    • 打开'Process Monitor'

    • 在主工具栏中选择'Find'选项卡

    • 选择'Find Handle or DLL...'

    • 输入您要查询的文件,即'MyExcel.xls',将显示文件所有句柄的列表 .

    • 接下来,关闭保存文件的任何应用程序,然后再次尝试运行您的应用程序 .

相关问题