C# 使用ODP.NET和企业库连接到Oracle

C# 使用ODP.NET和企业库连接到Oracle,c#,.net,database,oracle,C#,.net,Database,Oracle,我编写了一个简单的控制台程序,该程序试图使用企业库ODP.NET连接到Oracle数据库,并使用VS2013以C#编写。我的电脑上安装了ODAC 12.c 但是,当我的程序试图打开 数据库 using Microsoft.Practices.EnterpriseLibrary.Data; using Microsoft.Practices.EnterpriseLibrary.Common.Configuration; using Microsoft.Practices.EnterpriseLib

我编写了一个简单的控制台程序,该程序试图使用企业库ODP.NET连接到Oracle数据库,并使用VS2013以C#编写。我的电脑上安装了ODAC 12.c

但是,当我的程序试图打开 数据库

using Microsoft.Practices.EnterpriseLibrary.Data;
using Microsoft.Practices.EnterpriseLibrary.Common.Configuration;
using Microsoft.Practices.EnterpriseLibrary.Data.Oracle;

OracleDatabase db = null;
db2 = DatabaseFactory.CreateDatabase() as OracleDatabase;  

System.Configuration.ConfigurationErrorsException was unhandled
Message=An error occurred creating the configuration section handler for 
dataConfiguration: Could not load file or assembly 
Microsoft.Practices.EnterpriseLibrary.Data, Version=5.0.414.0, 
Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. 
The located assembly's manifest definition does not match the assembly reference.
Source=System.Configuration
My app.config文件包含以下内容:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="dataConfiguration" 
    type="Microsoft.Practices.EnterpriseLibrary.Data.Configuration.DatabaseSettings, .../> 
    <section name="oracleConnectionSettings" 
    type="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.Configuration.OracleConnectionSettings, ... />
  </configSections>

  <dataConfiguration defaultDatabase="OracleConnect">
      <providerMappings>
          <add databaseType="Microsoft.Practices.EnterpriseLibrary.Data.Oracle.OracleDatabase, ... />
      </providerMappings>
  </dataConfiguration>
  <oracleConnectionSettings>
      <add name="Oracle Connection" />
  </oracleConnectionSettings>

  <oracle.manageddataaccess.client>
  <version number="*">
    <dataSources>
      <dataSource alias="sdtp11" descriptor="(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)
      (HOST=servername)(PORT=24106))(CONNECT_DATA=(SID=databasename)(SERVER=DEDICATED)))"/> 
    </dataSources>
   </version>
  </oracle.manageddataaccess.client>

  <connectionStrings>
    <add name="OracleConnect" connectionString="Database=databasename;
    Server=servername:24106;User ID=username;Unicode=True;Password=password" 
    providerName="Oracle.ManagedDataAccess.Client" />
    <add name="sdtp11" connectionString="Database=databasename;Server=servername:24106;
    Persist Security Info=True;User ID=username;Unicode=True;Password=password" 
    providerName="Oracle.ManagedDataAccess.Client" />
  </connectionStrings>
</configuration>


我只需要知道您使用的EL版本以及应用程序的目标.Net框架是什么?什么是“EL”?我的目标是.NET4.0。我正在使用VS2013和ODAC 12c。什么版本的企业库(EL)?哦。我使用的是EL 5.0。我查看了项目中引用的EL.Data版本及其“5.0.505.0”,因此更新了.conf文件中的版本,并通过了该错误。但是,当我调用'ExecuteOnQuery',{“关键字不受支持:'数据库'”}时,它会失败。不过,我不确定我的配置规范是否仍然正确。请阅读单词-Execute Non Query。创建此方法不是为了执行选择。若并没有将记录读到表或读卡器中,您如何知道这些记录会受到影响?注意受影响的REC。因为如果您插入一行,并且在您插入到的视图或表上有一个触发器,并且触发器修改了另一条记录,那么它将受到总记录的影响。因此,您可能期望1,但得到2,或更多。