.net操作Oracle存贮过程

http://www.microsoft.com/china/MSDN/library/data/dataAccess/DMSDNorsps.mspx?mfr=true

是微软的实例及应用。讲解的不错。
不过其中创建的存储过程需要将new换成Repleace。下面是我做的实例。

1  表结构及数据:

   1           系统功能    0           1
   2           客户中心    1           0
   3           潜在客户    2           0
   4           现在客户    2           1
   5           历史客户    2           1
   6           报表中心    1           1
   7           总公司报表    6           1
   8           中化工报表    7           1
   9           基本情况表    8           1
  10          主要经济    8           1
  11          办公中心    1           1
  12          公文流转    11           1
  13          日程管理    11           1

2 存贮过程:

CREATE OR REPLACE PROCEDURE InfoManager.COUNT_SysFunction
(
    reccount OUT NUMBER
)
IS
BEGIN
    SELECT COUNT(*) INTO reccount
    FROM Infomanager.Sysfunction;
END COUNT_SysFunction;



3  引用Oracle连接 :
using System.Data.OracleClient;

4 代码 :

                      OracleConnection conn 
=   new  OracleConnection(System.Configuration.ConfigurationManager.AppSettings[ " DBConnStr " ]);
        OracleCommand cmd 
=   new  OracleCommand();
        cmd.Connection 
=  conn;
        cmd.CommandText 
=   " COUNT_SysFunction " ;
        cmd.CommandType 
=  CommandType.StoredProcedure;

        cmd.Parameters.Add(
" reccount " , OracleType.Number);
        cmd.Parameters[
" reccount " ].Direction  =  ParameterDirection.Output;
        conn.Open();
        cmd.ExecuteNonQuery();
        conn.Close();

        Label1.Text 
=  cmd.Parameters[ " reccount " ].Value.ToString();

        conn.Close();




测试通过:
当然还有另外两个例子数据库连接方式参看上面的 工程方式连接数据库(http://tb.blog.csdn.net/TrackBack.aspx?PostId=1539106),一个用来更新数据库操作,一个用来显示多参数的传递。

CREATE OR REPLACE PROCEDURE InfoManager.UPD_SYSFUNCTION
(
    func_id char
)
IS
BEGIN
    update infomanager.sysfunction
    set 标志 =
0
    WHERE 功能编号 = func_id;
END UPD_SYSFUNCTION;

 

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

 

using System.Data.OracleClient;

 

using HHSCInfor.App_Code.Database;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        AbsDB conn = DBConn.GetDBConn();

        OracleCommand cmd = new OracleCommand();

        cmd.CommandText = "UPD_SYSFUNCTION";

        OracleParameter para1 = new OracleParameter("func_id", 4);

        OracleParameter[] paraValue ={ para1};

        int resultFlag = conn.ExeSql(CommandType.StoredProcedure, cmd.CommandText, paraValue);

        Label1.Text = resultFlag.ToString();     
    
      
conn.Close();
 

    }  

}

 

CREATE OR REPLACE PROCEDURE UPD_SYSFUNCTION
(
    func_id char,
    flag char
)
IS
BEGIN
    update infomanager.sysfunction
    set 标志 = flag
    WHERE 功能编号 = func_id;
END UPD_SYSFUNCTION;

 

using System;

using System.Data;

using System.Configuration;

using System.Web;

using System.Web.Security;

using System.Web.UI;

using System.Web.UI.WebControls;

using System.Web.UI.WebControls.WebParts;

using System.Web.UI.HtmlControls;

 

using System.Data.OracleClient;

 

using HHSCInfor.App_Code.Database;

 

public partial class _Default : System.Web.UI.Page

{

    protected void Page_Load(object sender, EventArgs e)

    {

        AbsDB conn = DBConn.GetDBConn();

        OracleCommand cmd = new OracleCommand();

        cmd.CommandText = "UPD_SYSFUNCTION";

            OracleParameter para1 = new OracleParameter("func_id", 4);

        OracleParameter para2 = new OracleParameter("flag", 1);

        OracleParameter[] paraValue ={ para1, para2 };

        int resultFlag = conn.ExeSql(CommandType.StoredProcedure, cmd.CommandText, paraValue);

        Label1.Text = resultFlag.ToString();

          conn.Close();
   

    }  

    

}

 

你可能感兴趣的:(oracle,.net,数据库,object,System,报表)