C#调用Oracle存储过程

C#调用Oracle存储过程的代码如下所示:

  1 using System;
  2 using System.Collections.Generic;
  3 using System.Collections.ObjectModel;
  4 using System.ComponentModel;
  5 using System.Configuration;
  6 using System.Data;
  7 using System.Data.OracleClient;
  8 using System.Drawing;
  9 using System.Linq;
 10 using System.Reflection;
 11 using System.Text;
 12 using System.Threading.Tasks;
 13 using System.Windows.Forms;
 14
 15 namespace ExecuteProcByOracle
 16 {
 17     public partial class Form1 : Form
 18     {
 19         public Form1()
 20         {
 21             InitializeComponent();
 22         }
 23
 24         private void Btn_LoadData_Click(object sender, EventArgs e)
 25         {
 26             // 存储过程名称
 27             string strProcName = "usp_yngr_getInfectionCard";
 28             // 存储过程参数
 29             OracleParameter[] parameters = {
 30                                         new OracleParameter("V_BeginTime",OracleType.VarChar),
 31                                         new OracleParameter("V_EndTime",OracleType.VarChar),
 32                                         new OracleParameter("V_DateType",OracleType.Number),
 33                                         new OracleParameter("V_PtName",OracleType.VarChar),
 34                                         new OracleParameter("V_PtChartNo",OracleType.VarChar),
 35                                         new OracleParameter("V_DeptCode",OracleType.VarChar),
 36                                         new OracleParameter("V_CheckedStatus",OracleType.VarChar),
 37                                         // 返回值的类型是游标类型
 38                                         new OracleParameter("cur_out",OracleType.Cursor)
 39                                         };
 40             // 设置存储过程参数数组的值和参数的类型
 41             parameters[0].Value = "2017-06-01";
 42             parameters[0].Direction = ParameterDirection.Input;
 43             parameters[1].Value = "2017-07-31";
 44             parameters[1].Direction = ParameterDirection.Input;
 45             parameters[2].Value = 1;
 46             parameters[2].Direction = ParameterDirection.Input;
 47             parameters[3].Value = "";
 48             parameters[3].Direction = ParameterDirection.Input;
 49             parameters[4].Value = "";
 50             parameters[4].Direction = ParameterDirection.Input;
 51             parameters[5].Value = "";
 52             parameters[5].Direction = ParameterDirection.Input;
 53             parameters[6].Value = "1";
 54             parameters[6].Direction = ParameterDirection.Input;
 55             parameters[7].Direction = ParameterDirection.Output;
 56
 57             this.dgv_Demo.DataSource = LoadData(strProcName, parameters);
 58         }
 59
 60         private DataTable LoadData(string strProcName, params OracleParameter[] parameters)
 61         {
 62
 63             DataTable dt = new DataTable();
 64             string strConn = ConfigurationManager.ConnectionStrings["HealthHospInfection"].ConnectionString;
 65             using (OracleConnection conn = new OracleConnection(strConn))
 66             {
 67                 try
 68                 {
 69
 70                     OracleCommand cmd = new OracleCommand();
 71                     cmd.CommandText = strProcName;
 72                     cmd.CommandType = CommandType.StoredProcedure;
 73                     cmd.Connection = conn;
 74                     conn.Open();
 75                     if (parameters != null)
 76                     {
 77                         // 添加参数
 78                         cmd.Parameters.AddRange(parameters);
 79                     }
 80
 81                     // 取数据
 82                     using (OracleDataAdapter adapter = new OracleDataAdapter(cmd))
 83                     {
 84
 85                         adapter.Fill(dt);
 86                     }
 87                 }
 88                 catch (Exception ex)
 89                 {
 90                     MessageBox.Show("错误:" + ex.Message + "/r/n跟踪:" + ex.StackTrace);
 91                 }
 92                 finally
 93                 {
 94                     conn.Close();
 95                 }
 96             }
 97
 98             return dt;
 99         }
100     }
101 }

示例代码下载地址:https://files.cnblogs.com/files/dotnet261010/CSharp%E6%89%A7%E8%A1%8COracle%E5%AD%98%E5%82%A8%E8%BF%87%E7%A8%8B.rar

时间: 2024-11-17 01:06:30

C#调用Oracle存储过程的相关文章

jdbc调用 oracle 存储过程操作

创建有参存储函数findEmpNameAndSal(编号),查询7902号员工的的姓名和月薪,[返回多个值,演示out的用法]当返回2个或多个值,必须使用out符号当返回1个值,就无需out符号 create or replace function findEmpNameAndSal(pempno in number,pename out varchar2) return numberas psal emp.sal%type;begin select ename,sal into pename,

C#调用 Oracle 存储过程样例代码

-- 建表CREATE TABLE sale_report (     sale_date DATE NOT NULL ,     sale_item VARCHAR(2) NOT NULL ,      sale_money DECIMAL(10,2) NOT NULL,      PRIMARY KEY(sale_date, sale_item)); -- 測试数据DECLAREv_begin_day DATE;v_end_day DATE;BEGIN v_begin_day := TO_D

在java中调用Oracle存储过程

在java中调用Oracle存储过程 本文介绍如何通过java来调用Oracle的存储过程 1. 编写存储过程 CREATE OR REPLACE PROCEDURE sp_pro3(sp_name VARCHAR2,sp_sal NUMBER ) IS BEGIN --根据用户名修改工资 UPDATE emp SET sal=sp_sal WHERE ename=sp_name; END; 引入jdbc6.jar,编写测试类Test.java package testOraclePro; im

asp.net调用oracle存储过程

oracle内的存储过程是通过游标返回结果集的 DataTable dt = new DataTable(); OracleParameter[] paras = new OracleParameter[5]; paras[0] = new OracleParameter("p_StartTime", OracleType.Char); paras[0].Value = StartTime; paras[1] = new OracleParameter("p_EndTime&

C#调用Oracle存储过程的方法

本文实例讲述了C#调用Oracle存储过程的方法.分享给大家供大家参考.具体实现方法如下: Oracle数据库代码如下: 代码如下: create or replace procedure proce_test(paramin in varchar2,paramout out varchar2,paraminout in out varchar2) as varparam varchar2(28); begin varparam:=paramin; paramout:=varparam|| pa

用java调用oracle存储过程总结(转)

//1.call+包名+存储过程名(传入.传出值用?) String str="{call SMSBUSINESS.deleteZhZMember(?,?,?)}"; //2.建立连接 Connection conn=null; conn=DriverManager.getConnection(); //3.使用java.sql.*类 CallableStatement cs=conn.prepareCall(str); //4.传入in值 cs.setInt(1,id); cs.se

java基础---->java调用oracle存储过程(转)

存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.今天,我们就开始学习java中调用oracle的存储过程. java中调用oracle的存储过程 项目结构如下: 一. 在数据库创建存储过程的脚本,如果使用的是本地的oracle数据库,则需要开启服务:OracleOraDb11g_home1TNSListener和OracleServiceORCL.

java基础---->java调用oracle存储过程

存储过程是在大型数据库系统中,一组为了完成特定功能的SQL 语句集,存储在数据库中,经过第一次编译后再次调用不需要再次编译,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它.今天,我们就开始学习java中调用oracle的存储过程. java中调用oracle的存储过程 项目结构如下: 一. 在数据库创建存储过程的脚本,如果使用的是本地的oracle数据库,则需要开启服务:OracleOraDb11g_home1TNSListener和OracleServiceORCL.

java代码调用oracle存储过程

一.简介 与调用mysql存储过程类型过程都是如下 1.创建连接 Connection conn = DriverManager.getConnection(url, user, password); 2.创建CallableStatement CallableStatement statement = conn.prepareCall(sql); 3.设置参数 statement.setInt(1, id); statement.registerOutParameter(2, Types.VA