Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# SEHException外部组件引发了异常_C#_.net - Fatal编程技术网

C# SEHException外部组件引发了异常

C# SEHException外部组件引发了异常,c#,.net,C#,.net,我正在使用VS2010和MS Access 2010。还安装了Microsoft Access数据库引擎2010。操作系统版本为Windows 7 Enterprise,带有64位操作系统 下面是我得到异常的代码。我还粘贴了堆栈轨迹 DCXManagerTableAdapters.AppDefaultOptionTableAdapter dataAdapter = new DCXManagerTableAdapters.AppDefaultOptionTableAdapter(); dataA

我正在使用VS2010和MS Access 2010。还安装了Microsoft Access数据库引擎2010。操作系统版本为Windows 7 Enterprise,带有64位操作系统

下面是我得到异常的代码。我还粘贴了堆栈轨迹

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 constr、SessionWrapper和SessionWrapper)位于 System.Data.OleDb.OleDbConnectionInternal..ctor(OleDbConnectionString 施工,OLEDB连接)在 System.Data.OleDb.OleDbConnectionFactory.CreateConnection(DbConnectionOptions 选项、DbConnectionPoolKey poolKey、对象poolGroupProviderInfo、, DbConnectionPool池,DbConnection owningObject)位于 System.Data.ProviderBase.DbConnectionFactory.CreateConnection(DbConnectionOptions 选项、DbConnectionPoolKey poolKey、对象poolGroupProviderInfo、, DbConnectionPool池,DbConnection owningConnection, DbConnectionOptions(用户选项)位于 System.Data.ProviderBase.DbConnectionFactory.CreateNonPooledConnection(DbConnection owningConnection、DbConnectionPoolGroup poolGroup、DbConnectionOptions 用户选项)位于 System.Data.ProviderBase.DbConnectionFactory.TryGetConnection(DbConnection owningConnection、TaskCompletionSource
1重试、DbConnectionOptions
用户选项、DbConnectionInternal oldConnection、DbConnectionInternal&
连接)在
System.Data.ProviderBase.DbConnectionInternal.TryOpenConnectionInternal(DbConnection
外部连接,数据库连接工厂连接工厂,
TaskCompletionSource
1重试,数据库连接选项用户选项)位于 System.Data.ProviderBase.DbConnectionClosed.TryOpenConnection(DbConnection 外部连接,数据库连接工厂连接工厂, TaskCompletionSource`1重试,DbConnectionOptions用户选项)位于 System.Data.ProviderBase.DbConnectionInternal.OpenConnection(DbConnection outerConnection,DbConnectionFactory连接工厂)位于 System.Data.OleDb.OleDbConnection.Open()位于 中的Branson.DataAccess.Providers.GraphTabProvider.GetAppDefaultOption() D:\BRANSON-SVN\Solution\BRANSON.DataAccess\Providers\GraphTabProvider.cs:line 180位于Branson.Controller.GraphTabController.GetAppDefaultOption()处 在里面 D:\BRANSON-SVN\Solution\BRANSON.Controller\GraphTabController.cs:line 37在Branson.DCXManager.App.OnStartup(StartupEventArgs e)的 D:\BRANSON-SVN\Solution\BRANSON.DCXManager\BRANSON.DCXManager\App.xaml.cs:line 174 at System.Windows.Application.b___1(未使用的对象)at System.Windows.Threading.ExceptionWrapper.InternalRealCall(委托 回调,对象args,Int32 numArgs)位于 MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(对象 源,委托方法,对象参数,Int32 numArgs,委托 捕手)


如果此连接曾经工作并已停止,则可能是由于文件的句柄打开所致

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

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

您可以在此处下载Process Explorer作为独立应用程序:

  • 打开“进程监视器”
  • 选择主工具栏中的“查找”选项卡
  • 选择“查找句柄或DLL…”
  • 输入要查询的文件,即“MyExcel.xls”和 将显示文件的所有句柄
  • 接下来,关闭保存文件的任何应用程序,然后重试 再次运行应用程序

  • 该错误似乎与打开与数据库的连接有关。你的连接字符串是什么?你知道吗?