• C#调用Oracle存储过程


    1.创建表

    create table test
    (ID number,
    NAME varchar2(10),
    SEX varchar2(4),
    AGE number,
    ADDRESS varchar2(200)
    );

    2.创建不带参数的存储过程

    create or replace procedure proc1
    is
    begin insert into test(ID,NAME,SEX,AGE) values
    (1,'moses','man',25);
    commit;
    end;
    /

    3.写C#代码调用这个不带参数的存储过程

    protected void Button2_Click(object sender, EventArgs e)
        {
            String oc = ConfigurationManager.ConnectionStrings["conn"].ToString();
            OracleConnection conn = new OracleConnection(oc);
            conn.Open();
            OracleCommand orm = conn.CreateCommand();
            orm.CommandType = CommandType.StoredProcedure;
            orm.CommandText = "proc1";
            orm.ExecuteNonQuery();
            conn.Close();
        }

    4.写一个没有返回值的带参数的存储过程

    create or replace proc2
    (v_id  number,
    v_name varchar2
    )
    is begin insert into test(id,name)
    values(v_id,v_name);
    commit;
    end;
    /

    5.C#调用这个带参数无返回值的存储过程

     protected void Button1_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(this.TextBox2.Text))
            {
                this.TextBox2.Text = "编号不能为空";
                this.TextBox2.Focus();
                return;
    
            }
            if (string.IsNullOrEmpty(this.TextBox3.Text))
            {
                this.TextBox3.Text = "姓名不能为空";
                this.TextBox3.Focus();
                return;
               
    
            }
           String or=ConfigurationManager.ConnectionStrings["conn"].ToString();
           OracleConnection oc = new OracleConnection(or);
           oc.Open();
           OracleCommand om = oc.CreateCommand();
           om.CommandType = CommandType.StoredProcedure;
           om.CommandText = "proc2";
           om.Parameters.Add("v_id", OracleType.Number).Direction = ParameterDirection.Input;
           om.Parameters["v_id"].Value = this.TextBox2.Text.Trim();
           om.Parameters.Add("v_name", OracleType.NVarChar).Direction = ParameterDirection.Input;
           om.Parameters["v_name"].Value = this.TextBox3.Text.Trim();
           om.ExecuteNonQuery();
           oc.Close();
        }

    6.写一个带参数有返回值的存储过程

    create or replace procedure proc3 (recount out number
    )
    is 
    begin
    select  count(*)  into reccount from test;
    commit;
    end;
    /

    7.C#调用这个带参数有返回值的存储过程

    protected void Button1_Click(object sender, EventArgs e)
        {
            String or = ConfigurationManager.ConnectionStrings["conn"].ToString();
            OracleConnection oc = new OracleConnection(or);
            oc.Open();
            OracleCommand ocm = oc.CreateCommand();
            ocm.CommandType = CommandType.StoredProcedure;
            ocm.CommandText = "proc3";
            ocm.Parameters.Add("reccount", OracleType.Number).Direction = ParameterDirection.Output;
            ocm.ExecuteNonQuery();
            this.TextBox1.Text = ocm.Parameters["reccount"].Value.ToString();
    
    
           
        }
  • 相关阅读:
    位置定位 api
    代理相关
    手机网页 右边的空白区
    sip介绍
    测试浏览器对html5支持
    sencha touch
    PC上的手机模拟器大全(安卓/苹果/黑莓/塞班/微软)
    测试视频
    android 环境配置 与 运行错误
    android 一年过期
  • 原文地址:https://www.cnblogs.com/canyangfeixue/p/2713709.html
Copyright © 2020-2023  润新知