C#调用oracle存储过程 最简单的实例

日期: 2008-06-17 来源:TechTarget中国

  1.创建Oracle过程存储


  create or replace procedure proce_test(paramin in varchar2,paramout out varchar2,paraminout in out varchar2)
  as
    varparam varchar2(28);
  begin
    varparam:=paramin;
    paramout:=varparam|| paraminout; 
  end;


  2.测试过程存储
  declare
    param_out varchar2(28);
    param_inout varchar2(28);
  begin
    param_inout:=’ff’;  
    proce_test(’dd’,param_out,param_inout);  
    dbms_output.put_line(param_out);
  end;


  C#方面
  引用Oracle组件
  using System;
  using System.Data;
  using System.Data.OracleClient;   


  namespace WebApplication4
  {
       public class OraOprater
       {
           private OracleConnection conn=null;
           private OracleCommand cmd=null;
          public OraOprater()
           {
                string mConn=”data source=ora9i.ora.com;user id=ora;password=ora”;  //连接数据库
                conn=new OracleConnection(mConn);
                try
                {
                     conn.Open();
                     cmd=new OracleCommand();
                     cmd.Connection=conn;
                }
                catch(Exception e)
                {
                     throw e;
                }
           }


           public string SpExeFor(string m_A,string m_B)
           {
                  //存储过程的参数声明
                OracleParameter[] parameters={
                                   new OracleParameter(“paramin”,OracleType.Varchar,20),
                                  new OracleParameter(“paramout”,OracleType.Varchar,20),
                                   new OracleParameter(“paraminout”,OracleType.Varchar,20)
                                                };
                parameters[0].Value=m_A;
                parameters[2].Value=m_B;
                parameters[0].Direction=ParameterDirection.Input;
                parameters[1].Direction=ParameterDirection.Output;
                parameters[2].Direction=ParameterDirection.InputOutput;
                try
                {
                     RunProcedure(“proce_test”,parameters);
                    return parameters[1].Value.ToString();
                }
                catch(Exception e)
                {
                     throw e;
                }
           }


           private void RunProcedure(string storedProcName,OracleParameter[] parameters)
           {
                cmd.CommandText=storedProcName;//声明存储过程名
                cmd.CommandType=CommandType.StoredProcedure;
                foreach(OracleParameter parameter in parameters)
                {
                     cmd.Parameters.Add(parameter);
                }
                cmd.&#101xecuteNonQuery();//执行存储过程
           }
       }
  }
  测试结果:ddff

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

电子邮件地址不会被公开。 必填项已用*标注

敬请读者发表评论,本站保留删除与本文无关和不雅评论的权力。

相关推荐