C#使用ORACLE中的存储过程

首先创建一张表:

	create table scott_stumsg  
	(  
	    stuname varchar(20),  
	    stunum char(12)primary key,  
	    stusex char(2)  
	)  
向表中插入信息的存储过程:
	create procedure stu_pro_ins  
	(  
	   name in varchar,  
	   num in char,  
	   sex in char  
	)  
	as  
	begin  
	   insert into scott.stumsg   
	   values(name,num,sex);  
	   commit;  
	end;

修改表信息的存储过程:
	create or replace procedure stu_pro_upd  
	(  
	   name in varchar,  
	   num in char,  
	   sex in char  
	)  
	as  
	begin  
	update stumsg  
	set  
	stuname=name,stunum=num,stusex=sex  
	where stunum=num;  
	commit;  
	end;  
删除表信息的存储过程:

	create or replace procedure stu_pro_del  
	(  
	   num in char  
	)  
	as  
	begin  
	delete from stumsg  
	where stunum=num;  
	commit;  
	end;  
	-- 显示全部的学生信息的存储过程;  
	create or replace procedure stu_pro_sel_all  
	(result out sys_refcursor)  
	as  
	begin  
	open result for select * from stumsg;  
	end;  

C# 调用存储过程时的代码

//绑定显示所有信息
private void button1_Click(object sender, EventArgs e)  
	       {  
	           try  
	           {  
	               OracleConnection conn = new OracleConnection("server=Chweiorc;uid=scott;pwd=Chwei926a");// 建立一个新的连接对象  
	               OracleCommand cmd = new OracleCommand("stu_pro_sel_all", conn);  
	               // 声明 cmd的类型为 存储类型;  
	               cmd.CommandType = CommandType.StoredProcedure;  
	  
	               OracleParameter p1 = new OracleParameter("result", OracleType.Cursor);  
	               p1.Direction = System.Data.ParameterDirection.Output;  
	               cmd.Parameters.Add(p1);  
	  
	               OracleDataAdapter da = new OracleDataAdapter(cmd);  
	               DataSet ds = new DataSet();  
	               da.Fill(ds);  
	               this.dgvShowAll.DataSource = ds.Tables[0];  
	           }  
	           catch (Exception ex)  
	           {  
	               MessageBox.Show(ex.Message);  
	           }  
	       }  

 // 像数据库中插入数据;  
	       private void button2_Click(object sender, EventArgs e)  
	       {  
	           string stuName = tb_name.Text.Trim();  
	           string stuNum = tb_num.Text.Trim();  
	           string stuSex = tb_sex.Text.Trim();  
	  
	           MessageBox.Show(stuSex.Length.ToString());  
	  
	           //连接字符串  
	           string connStr = "Data Source=Chweiorc;User ID=scott;Password=Chwei926a";  
	           OracleConnection connection = new OracleConnection(connStr);  
	           OracleCommand cmd = connection.CreateCommand();  
	           
	           cmd.CommandType = CommandType.StoredProcedure; // 指明用调用存储过程的方式来操作数据库;  
	           cmd.CommandText = "stu_pro_ins";  
	  
	           cmd.Parameters.AddWithValue("name", stuName);  
	           cmd.Parameters.AddWithValue("num",stuNum);  
	           cmd.Parameters.AddWithValue("sex",stuSex);  
	  
	           connection.Open();  
	           try  
	           {  
	               MessageBox.Show(cmd.ExecuteNonQuery().ToString());  
	           }  
	           catch (Exception ex)  
	           {  
	               MessageBox.Show(ex.Message);  
	           }  
	           finally  
	           {  
	               connection.Close();  
	               cmd.Dispose();  
	               MessageBox.Show("更新数据完成~~~~");  
	           }  
	       }




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C# 调用 Oracle 存储过程可以使用 Oracle.DataAccess.Client 命名空间OracleCommand 类。下面是一个示例代码: ```csharp // 创建 Oracle 数据库连接 OracleConnection connection = new OracleConnection("Data Source=your_datasource;User ID=your_userid;Password=your_password"); // 打开数据库连接 connection.Open(); // 创建 OracleCommand 对象,设置存储过程名称和连接对象 OracleCommand command = new OracleCommand("your_stored_procedure_name", connection); command.CommandType = CommandType.StoredProcedure; // 添加输入参数 OracleParameter inputParameter = new OracleParameter("input_parameter_name", OracleDbType.Varchar2, ParameterDirection.Input); inputParameter.Value = "your_input_parameter_value"; command.Parameters.Add(inputParameter); // 添加输出参数 OracleParameter outputParameter = new OracleParameter("output_parameter_name", OracleDbType.Varchar2, ParameterDirection.Output); command.Parameters.Add(outputParameter); // 执行存储过程 command.ExecuteNonQuery(); // 获取输出参数值 string outputValue = outputParameter.Value.ToString(); // 关闭数据库连接 connection.Close(); ``` 其,your_datasource 是你的 Oracle 数据库连接字符串,your_userid 和 your_password 是你的数据库用户名和密码,your_stored_procedure_name 是你要调用的存储过程名称,input_parameter_name 是存储过程的输入参数名称,output_parameter_name 是存储过程的输出参数名称。执行存储过程后,可以通过 outputParameter.Value 属性获取输出参数的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值