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