ASP.NET使用Oralce過程/函數(一)

來源:互聯網
上載者:User

前期準備
create table mistest
(
id number not null,
name varchar2(200),
password varchar2(255),
constraint PK_mistest primary key(id)
);

create sequence SEQ_mistest_id
increment by 1
start with 1
maxvalue 999999;

create or replace trigger TR_mistest_insert
before insert on mistest
for each row
declare
m_seq number;
begin
select SEQ_mistest_id.nextval into m_seq from dual;
:new.id:=m_seq;
end;

有輸入,有返回結果集

CREATE OR REPLACE PACKAGE SELECT_SINGLE AS
TYPE T_CURSOR IS REF CURSOR;
PROCEDURE GetById
(
    p_id IN NUMBER,
    cur_Single OUT T_CURSOR
);
END SELECT_SINGLE;

CREATE OR REPLACE PACKAGE BODY SELECT_SINGLE AS
PROCEDURE GetById
(
    p_id IN NUMBER,
    cur_Single OUT T_CURSOR
)
IS
BEGIN
    OPEN cur_Single FOR
    SELECT * FROM mistest
        WHERE id = p_id;

END GetById;
END SELECT_SINGLE;

using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data.OracleClient;
namespace MisTest
{
    /**//// <summary>
    /// WebForm4 的摘要說明。
    /// </summary>
    public class WebForm4 : System.Web.UI.Page
    {
        protected System.Web.UI.WebControls.DataGrid DataGrid1;
    
        private void Page_Load(object sender, System.EventArgs e)
        {
          OracleParameter[] parameters= 
         {
          new OracleParameter("cur_Single", OracleType.Cursor, 2000, ParameterDirection.Output, true, 0, 0, "",
                                              DataRowVersion.Default, Convert.DBNull),
          new OracleParameter("p_id", OracleType.Int32)
         };
        parameters[1].Value = 1;
        string connectionString = "Data Source=oracle9i;User ID=hucong;Password=hucong";
        string queryString = "SELECT_SINGLE.GetById";
        OracleConnection cn = new OracleConnection(connectionString);
        OracleCommand cmd = new OracleCommand(queryString,cn);
        cmd.CommandType = CommandType.StoredProcedure;
        foreach(OracleParameter parameter in parameters)
        {
            cmd.Parameters.Add( parameter );
        }

        cn.Open();
        OracleDataReader dr = cmd.ExecuteReader();
        while(dr.Read())
        {
            for(int i = 0; i < dr.FieldCount; i++)//擷取當前行中的列數
                Response.Write(dr[i].ToString() + ";");
            
        }
        cn.Close();

        }

        Web 表單設計器產生的程式碼#region Web 表單設計器產生的程式碼
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN: 該調用是 ASP.NET Web 表單設計器所必需的。
            //
            InitializeComponent();
            base.OnInit(e);
        }
        
        /**//// <summary>
        /// 設計器支援所需的方法 - 不要使用代碼編輯器修改
        /// 此方法的內容。
        /// </summary>
        private void InitializeComponent()
        {    
            this.Load += new System.EventHandler(this.Page_Load);

        }
        #endregion
    }
}

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.