简单的C#使用Oracle

本文介绍如何使用Oracle数据库进行表的创建、存储过程及包的定义,并演示了通过C#应用程序调用Oracle存储过程来展示数据及插入新记录的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 1.设置Scott账户的权限,使之能创建表。
2.create table employee(UserID number(4), UserName nvarchar2(32));
3.创建包,存储过程。

create or replace procedure AddNew(pUserID in Number,pUserName in nvarchar2) is
begin
  
insert into Employee(UserID ,UserName) values(pUserID,pUserName);
end AddNew;

--
create or replace package Employee_Op
as
 type mycType 
is ref cursor;
 
procedure ShowAll(pC out mycType);
end Employee_Op;


--
create or replace package body Employee_Op
as
 
procedure ShowAll(pC out mycType)
 
is
 
begin
  
open pC for select UserID,UserName from Employee;
 
end ShowAll;
end Employee_Op;
4.在C# 中调用:
 用DataReader:
 
string ConnStr = "data source=First;User ID = scott;Password=tiger";
 
                OracleConnection Conn 
= new OracleConnection(ConnStr);
                Conn.Open();

                OracleCommand Cmd 
= new OracleCommand();
                Cmd.Connection 
= Conn;

                Cmd.CommandText 
= "EMPLOYEE_OP.SHOWALL";
                Cmd.CommandType 
= CommandType.StoredProcedure;

                Cmd.Parameters.Add(
"PC",OracleType.Cursor);
                Cmd.Parameters[
0].Direction = ParameterDirection.Output;

                OracleDataReader DR 
= Cmd.ExecuteReader();

                DataGrid1.DataSource 
= DR;
                DataBind();

                DR.Close();
                Conn.Close();
用DataSet:
  
    string ConnStr = "data source=First;User ID = scott;Password=tiger";
 
            OracleConnection Conn 
= new OracleConnection(ConnStr);
            Conn.Open();

            OracleCommand Cmd 
= new OracleCommand();
            Cmd.Connection 
= Conn;

            Cmd.CommandText 
= "EMPLOYEE_OP.SHOWALL";
            Cmd.CommandType 
= CommandType.StoredProcedure;

            Cmd.Parameters.Add(
"PC",OracleType.Cursor);
            Cmd.Parameters[
0].Direction = ParameterDirection.Output;
                
            OracleDataAdapter DA 
= new OracleDataAdapter(Cmd);

            
//DA.TableMappings.Add("Table","Employee");

            DataSet DS 
= new DataSet();
            DA.Fill(DS);
            
            Response.Write( DS.Tables[
0].Rows.Count.ToString() );
            
            DataGrid2.DataSource 
= DS.Tables[0].DefaultView;
            DataGrid2.DataBind();

            Cmd.Parameters.Clear();
            Conn.Close();
        

插入数据:
 
string ConnStr = "data source=First;User ID = scott;Password=tiger";
 
            OracleConnection Conn 
= new OracleConnection(ConnStr);
            Conn.Open();

            OracleCommand Cmd 
= new OracleCommand();
            Cmd.Connection 
= Conn;

            Cmd.CommandType 
= CommandType.StoredProcedure;
            Cmd.CommandText 
= "AddNew";

            Cmd.Parameters.Add( 
new OracleParameter("pUserID",OracleType.Number,4) );
            Cmd.Parameters.Add(
new OracleParameter("pUserName",OracleType.NVarChar,32) );
                              

            Cmd.Parameters[
0].Direction = ParameterDirection.Input;
            Cmd.Parameters[
1].Direction = ParameterDirection.Input;

            Cmd.Parameters[
0].Value = int.Parse( lblID.Text.ToString() ) ;
            Cmd.Parameters[
1].Value = lblName.Text.ToString() ;

            Cmd.ExecuteNonQuery();

            Conn.Close();

            dsbtn_Click(
this,EventArgs.Empty);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值