服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

PHP教程|ASP.NET教程|Java教程|ASP教程|编程技术|正则表达式|C/C++|IOS|C#|Swift|Android|VB|R语言|JavaScript|易语言|vb.net|

服务器之家 - 编程语言 - C# - C#调用Oracle存储过程方法介绍(附源码)

C#调用Oracle存储过程方法介绍(附源码)

2023-02-17 12:01.NET开发菜鸟 C#

这篇文章介绍了C#调用Oracle存储过程的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

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

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

示例代码下载地址:点此下载

到此这篇关于C#调用Oracle存储过程的文章就介绍到这了。希望对大家的学习有所帮助,也希望大家多多支持服务器之家。

原文链接:https://www.cnblogs.com/dotnet261010/p/7428567.html

延伸 · 阅读

精彩推荐
  • C#C# 数组删除元素的实现示例

    C# 数组删除元素的实现示例

    本文主要介绍了C# 数组删除元素的实现示例,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...

    ClementQL6402022-11-29
  • C#详解C#中的定时器Timer类及其垃圾回收机制

    详解C#中的定时器Timer类及其垃圾回收机制

    这篇文章主要介绍了C#中的定时器Timer类及其垃圾回收机制,讲解了Timer相关的单线程异步工作,需要的朋友可以参考下...

    go,go6702021-11-19
  • C#Unity 实现贴花效果的制作教程

    Unity 实现贴花效果的制作教程

    有些游戏中的战斗痕迹的效果会通过贴花来实现的,贴花的方式多种多样。而在Unity中,有一种给官方文档提供代码的解决方案。本文将这些代码的基础上...

    心之凌儿4102022-12-09
  • C#WPF如何绘制光滑连续贝塞尔曲线示例代码

    WPF如何绘制光滑连续贝塞尔曲线示例代码

    贝塞尔曲线,又称贝兹曲线或贝济埃曲线,一般的矢量图形软件通过它来精确画出曲线,下面这篇文章主要给大家介绍了关于WPF如何绘制光滑连续贝塞尔曲...

    冷火虫12012022-02-22
  • C#C#连接Informix数据库的问题

    C#连接Informix数据库的问题

    这篇文章主要介绍了C#连接Informix数据库的问题,本文给大家介绍的非常详细,对大家的工作或学习具有一定的参考借鉴价值,需要的朋友可以参考下...

    aimevous5382022-08-28
  • C#谈谈C# replace在正则表达式中的意义

    谈谈C# replace在正则表达式中的意义

    这篇文章主要介绍了C# replace在正则表达式中的意义的相关资料,需要的朋友可以参考下...

    网站自由开发者7232021-11-15
  • C#c#实现识别图片上的验证码数字

    c#实现识别图片上的验证码数字

    这篇文章主要介绍了c#实现识别图片上的验证码数字的方法,本文给大家汇总了2种方法,有需要的小伙伴可以参考下。...

    C#教程网5652021-11-02
  • C#C# 控件属性和InitializeComponent()关系案例详解

    C# 控件属性和InitializeComponent()关系案例详解

    这篇文章主要介绍了C# 控件属性和InitializeComponent()关系案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以...

    刘要直5822022-12-01