C# 使用ODP.NET和企业库连接到Oracle
我编写了一个简单的控制台程序,该程序试图使用企业库ODP.NET连接到Oracle数据库,并使用VS2013以C#编写。我的电脑上安装了ODAC 12.c 但是,当我的程序试图打开 数据库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
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,或更多。