开发手册 欢迎您!
软件开发者资料库

.NET Core 使用ODP.NET Core连接操作Oracle数据库

本文主要介绍.NET Core通过使用Oracle Data Provider for .NET (ODP.NET) Core连接操作oracle数据库方法及代码。ODP.NET Core是一个ADO.NET驱动程序,提供从Microsoft .NET Core客户端到Oracle数据库的快速数据访问。它可以在Windows和Linux上运行。ODP.NET由一个100%托管代码动态链接库Oracle.ManagedDataAccess.dll组成,可通过NuGet安装获得。

1、使用必要条件

1) 安装Microsoft Visual Studio 2017或更高版本。

2) 安装Oracle Database 12c或更高版本。

2、ODP.NET Core安装配置

在Nuget管理程序中,搜索'Oracle.ManagedDataAccess.Core' =》选中然后点击'安装'。

相关文档VS(Visual Studio)中Nuget的使用

3、ODP.NET Core连接配置使用代码

1) 连接字符串配置代码

// 示例演示了如何使用ODP.NET Core配置API// 添加连接描述符和网络服务名称条目OracleConfiguration.OracleDataSources.Add("orclpdb", "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=)(SERVER=dedicated)))");OracleConfiguration.OracleDataSources.Add("orcl", "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=)(SERVER=dedicated)))");// 设置所有连接使用的默认语句缓存大小OracleConfiguration.StatementCacheSize = 25;// 默认情况下禁用自调优OracleConfiguration.SelfTuning = false;// 按名称绑定所有参数OracleConfiguration.BindByName = true;// 将默认超时设置为60秒OracleConfiguration.CommandTimeout = 60;// 设置默认获取大小为1 MBOracleConfiguration.FetchSize = 1024 * 1024;// 设置跟踪选项OracleConfiguration.TraceOption = 1;OracleConfiguration.TraceFileLocation = @"D:\traces";// 取消下面的注释可以生成跟踪文件//OracleConfiguration.TraceLevel = 7;// 设置网络属性OracleConfiguration.SendBufferSize = 8192;OracleConfiguration.ReceiveBufferSize = 8192;OracleConfiguration.DisableOOB = true;

2) 操作oracle数据库代码

app.Run(async (context) =>{    //Demo: ASP.NET Core的基本ODP.NET核心应用程序    // 连接,查询和返回结果到网页    //创建到Oracle的连接    string conString = "User Id=hr;Password=;" +    //如何连接到Oracle数据库没有SQL*Net配置文件    // 也称为tnsnames.ora    "Data Source=:1521/;";    //如何使用DB别名连接到Oracle DB    //Uncomment below and comment above.    //"Data Source=;";    using (OracleConnection con = new OracleConnection(conString))    {        using (OracleCommand cmd = con.CreateCommand())        {            try            {                con.Open();                cmd.BindByName = true;                                             //使用该命令显示员工姓名                 // EMPLOYEES表                cmd.CommandText = "select first_name from employees where department_id = :id";                // 将ID分配给部门号50                OracleParameter id = new OracleParameter("id", 50);                cmd.Parameters.Add(id);                //执行命令并使用DataReader显示数据                OracleDataReader reader = cmd.ExecuteReader();                while (reader.Read())                {                    await context.Response.WriteAsync("Employee First Name: " + reader.GetString(0) + "\n");                }                reader.Dispose();            }            catch (Exception ex)            {                await context.Response.WriteAsync(ex.Message);            }        }    }});

官方文档https://www.oracle.com/webfolder/technetwork/tutorials/obe/db/dotnet/ODPNET_Core_get_started/index.html