C#中调用Oracle存储过程

本文介绍了一个简单的Oracle存储过程,用于通过员工编号查询对应姓名,并提供了C#代码示例来演示如何从桌面应用程序中调用此存储过程。

Oracle中的存储过程如下:

 

  create or replace procedure pro003(id in number, name out varchar2)
  is
  begin
     select ename into name from emp where empno=id;
  end; 

 

该存储过程的功能:  传入一个员工编号,输出emp表中对应的员工姓名。

 

C#中的代码如下:

 

ContractedBlock.gifExpandedBlockStart.gif代码
 1using System;
 2using System.Collections.Generic;
 3using System.ComponentModel;
 4using System.Data;
 5using System.Drawing;
 6using System.Linq;
 7using System.Text;
 8using System.Windows.Forms;
 9using System.Data.OracleClient;   //添加引用
10
11
12namespace WindowsFormsDataFormOrcl
13ExpandedBlockStart.gifContractedBlock.gif{
14
15    public partial class Form1 : Form
16ExpandedSubBlockStart.gifContractedSubBlock.gif    {
17
18        public Form1()
19ExpandedSubBlockStart.gifContractedSubBlock.gif        {
20            InitializeComponent();
21        }

22
23        private void button1_Click(object sender, EventArgs e)
24ExpandedSubBlockStart.gifContractedSubBlock.gif        {
25
26            string strConn = "data source=orcl2; persist security info=true; user ID=scott; password=tiger;unicode=true;";
27           
28            OracleConnection conn = new OracleConnection(strConn);
29            OracleCommand cmd = conn.CreateCommand();
30            conn.Open();
31
32            cmd.CommandText = "PRO003";  //存储过程名称
33            cmd.CommandType = CommandType.StoredProcedure;
34
35            //创建参数
36ExpandedSubBlockStart.gifContractedSubBlock.gif            OracleParameter [] paras = new OracleParameter("id", OracleType.Number),
37                                                            new OracleParameter ("name",OracleType .VarChar,20)}
;
38
39            paras[0].Value =int.Parse (textBox3 .Text .Trim());     //输入一个员工编号
40            //paras[1].Value = "hh";          //此处name为out 类型的参数,可以不赋初值
41
42            //设定参数类型
43            paras[0].Direction = ParameterDirection.Input;    
44            paras[1].Direction = ParameterDirection.Output;
45
46            //添加参数
47            foreach (OracleParameter pa in paras)
48                cmd.Parameters.Add(pa);
49
50            //执行存储过程
51            cmd.ExecuteNonQuery();
52            textBox1.Text = paras[1].Value.ToString();  //显示该员工的姓名
53
54            conn.Close();
55
56            
57        }

58    }

59}

60

转载于:https://www.cnblogs.com/shijiuka/articles/1614484.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值