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#中的代码如下:


1
using System;
2
using System.Collections.Generic;
3
using System.ComponentModel;
4
using System.Data;
5
using System.Drawing;
6
using System.Linq;
7
using System.Text;
8
using System.Windows.Forms;
9
using System.Data.OracleClient; //添加引用
10
11
12
namespace WindowsFormsDataFormOrcl
13

{
14
15
public partial class Form1 : Form
16
{
17
18
public Form1()
19
{
20
InitializeComponent();
21
}
22
23
private void button1_Click(object sender, EventArgs e)
24
{
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
//创建参数
36
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

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
