使用ADO.NET操作Oracle数据库
本文将示例使用C#的ADO.NET技术调用Oralce的存储过程和函数及操作Oracle数据库。
在oracle的hr数据库中建立存储过程
在oralce的hr数据库中建立函数
新建控制台项目,在主函数添加代码:
1 string strConn = "Data Source=jayjay;User ID=hr;Password=oracle;Unicode=True"; 2 3 //调用存储过程 4 using (OracleConnection conn = new OracleConnection(strConn)) 5 { 6 conn.Open(); 7 using (OracleCommand cmd = new OracleCommand("INSERT_PROCEDURE", conn)) 8 { 9 cmd.CommandType = CommandType.StoredProcedure; 10 cmd.ExecuteNonQuery(); 11 } 12 } 13 //显示调用存储过程后的数据 14 using (OracleConnection conn = new OracleConnection(strConn)) 15 { 16 conn.Open(); 17 using (OracleCommand cmd = new OracleCommand("select * from Jobs where JOB_ID='MY_JOB'", conn)) 18 { 19 cmd.CommandType = CommandType.Text; 20 OracleDataAdapter adapter = new OracleDataAdapter(cmd); 21 DataSet dataSet = new DataSet(); 22 adapter.Fill(dataSet);//执行cmd.ExecuteReader();并将结果添加到DataSet容器中 23 DataRow row = dataSet.Tables[0].Rows[0]; 24 Console.WriteLine("执行select * from Jobs where JOB_ID=MY_JOB之后得到的信息:"); 25 for(int i =0 ;i<4;i++) 26 { 27 Console.WriteLine(row[i]); 28 } 29 } 30 } 31 32 //调用函数 33 using (OracleConnection conn = new OracleConnection(strConn)) 34 { 35 conn.Open(); 36 using (OracleCommand cmd = new OracleCommand("UPDATE_MIN_SALARY", conn)) 37 { 38 cmd.CommandType = CommandType.StoredProcedure; 39 40 // 将参数类型设置为 返回值类型 41 OracleParameter parameter = new OracleParameter(); 42 parameter.Direction = ParameterDirection.ReturnValue; 43 parameter.OracleType = OracleType.Int32; 44 cmd.Parameters.Add(parameter); 45 46 cmd.ExecuteNonQuery(); 47 Console.WriteLine("受影响的行数为:" + parameter.Value); 48 } 49 } 50 51 //显示调用函数后的数据 52 using (OracleConnection conn = new OracleConnection(strConn)) 53 { 54 conn.Open(); 55 using (OracleCommand cmd = new OracleCommand("select * from Jobs where MIN_SALARY=4000", conn)) 56 { 57 cmd.CommandType = CommandType.Text; 58 OracleDataAdapter adapter = new OracleDataAdapter(cmd); 59 DataSet dataSet = new DataSet(); 60 adapter.Fill(dataSet); 61 62 Console.WriteLine("执行select * from Jobs where MIN_SALARY=4000之后得到的行数:" + dataSet.Tables[0].Rows.Count); 63 } 64 } 65 66 Console.ReadKey(); 67 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?