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); } } } });