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

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

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=<hostname or IP>)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=<service name>)(SERVER=dedicated)))");
OracleConfiguration.OracleDataSources.Add("orcl", "(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=<hostname or IP>)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=<service name>)(SERVER=dedicated)))");
// 设置所有连接使用的默认语句缓存大小
OracleConfiguration.StatementCacheSize = 25;
// 默认情况下禁用自调优
OracleConfiguration.SelfTuning = false;
// 按名称绑定所有参数
OracleConfiguration.BindByName = true;
// 将默认超时设置为60秒
OracleConfiguration.CommandTimeout = 60;
// 设置默认获取大小为1 MB
OracleConfiguration.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=<password>;" +
    //如何连接到Oracle数据库没有SQL*Net配置文件
    // 也称为tnsnames.ora
    "Data Source=<ip or hostname>:1521/<service name>;";
    //如何使用DB别名连接到Oracle DB
    //Uncomment below and comment above.
    //"Data Source=<service name alias>;";
    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



特别声明:本站部分内容收集于互联网是出于更直观传递信息的目的。该内容版权归原作者所有,并不代表本站赞同其观点和对其真实性负责。如该内容涉及任何第三方合法权利,请及时与824310991@qq.com联系,我们会及时反馈并处理完毕。