创建.NET服务以运行Oracle Query

时间:2015-05-08 15:17:47

标签: c# php oracle wcf

我有几个用PHP编写的服务,我正在迁移到.NET。我曾尝试使用WCF和Web API连接到我的Oracle数据库并从该数据库中提取信息,是否可以直接从Web应用程序运行查询或者执行此操作的正确方法是什么?以下是我尝试运行的查询:

select t2.meternumber, t1.blinkdate, t1.blinkcount
            from
              (select * from cecc_processed_blinks where trunc(blinkdate) between to_date(?, 'dd-mon-yy') and to_date(?, 'dd-mon-yy')) t1 
              left join meteraccts t2 on t1.serialnumber = t2.serialnumber
            where t2.meternumber = ?
            order by t1.blinkdate desc

此时我已连接到我的Oracle数据库,但我找不到很多关于将Oracle实现到.NET的文档,或者至少我理解为缺乏经验的C#开发人员。

2 个答案:

答案 0 :(得分:0)

您可以使用Oracle Managed ODP.NET adapter

最新版本支持EF6,可以满足您的需求。

您可以使用以下命令直接从nuget命令行安装它:

Install-Package odp.net.managed

答案 1 :(得分:-1)

如果您使用的是visual studio,请打开Nuget Package Manager控制台并输入以下内容:

Install-Package odp.net.managed 

https://www.nuget.org/packages/odp.net.managed/

之后很容易。添加using语句:

using Oracle.DataAccess.Client; // ODP.NET Oracle managed provider
using Oracle.DataAccess.Types; 

然后进行查询......

string oradb = "Data Source=ORCL;User Id=hr;Password=hr;";
OracleConnection conn = new OracleConnection(oradb);  // C#
conn.Open(); 

OracleCommand cmd = new OracleCommand();
cmd.Connection = conn;
cmd.CommandText = "select * from some table";
cmd.CommandType = CommandType.Text; 

OracleDataReader dr = cmd.ExecuteReader();
dr.Read();
string text = dr.GetString(0);
conn.Dispose();

http://www.oracle.com/webfolder/technetwork/tutorials/obe/db/hol08/dotnet/getstarted-c/getstarted_c_otn.htm