• 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

  • 相关阅读:
    ABP框架(asp.net core 2.X+Vue)运行前端(转)
    Spring学习指南第3版例子程序导入idea20.02
    Docker运行jar包(转)
    centos7使用docker搭建运行环境并部署jar(转)
    centos7修改docker镜像源的方法(转)
    虚拟机下CentOS7安装Docker(转)
    Virtual Box配置CentOS7网络(图文教程)(转)
    虚拟机docker运行jar程序
    docker安装
    【591】通过 Terminal 直接获取 GitHub 源码
  • 原文地址:https://www.cnblogs.com/dotnet261010/p/7428567.html
Copyright © 2020-2023  润新知