在C#.NET中怎样调用db2存储过程

创建了一个存储过程带一个参数反回多条记录集合   
      
  我调用的方法是:  
   
  this.DataConnect();     //数据库连接  
  OleDbCommand   mycmd=new   OleDbCommand();  
  mycmd.Connection=mycon;  
  mycmd.CommandType=System.Data.CommandType.StoredProcedure;  
  mycmd.CommandText=varProcName;  
  mycmd.Parameters.Add(parName,parType,parSize).Value=parValue;  
  OleDbDataAdapter   myda=new   OleDbDataAdapter(mycmd);  
  DataSet   dataset1=new   DataSet();  
  myda.Fill(dataset1);  
  mycon.Close();  
  return   dataset1; 

==========================================================================

this.DataConnect();     //数据库连接  
  OleDbCommand   mycmd=new   OleDbCommand();  
  mycmd.Connection=mycon;  
  mycmd.CommandType=System.Data.CommandType.StoredProcedure;  
  mycmd.CommandText=varProcName;  
  mycmd.Parameters.Add(parName,parType,parSize).Value=parValue;  
  OleDbDataAdapter   myda=new   OleDbDataAdapter(mycmd);  
  DataTable   dt=new   DataTable();  
  myda.Fill(dt);  
  return   dt;  
   
  在存储过程中定义个游标,然后将游标打开。就可以返回记录集。 
====================================================================

CREATE   PROCEDURE   administrator.GetUsersByLoginID(IN   login_ID   varchar(10))  
          LANGUAGE   SQL  
          BEGIN  
          declare   cur   CURSOR   WITH   RETURN   FOR    
          select   *   from   administrator.BMKIFAPERSON   where   loginID   =   login_ID;  
          OPEN   cur;  
          END   @   
=======================================================================

oracle   中假设要用system用户访问hr.employees表  
  1   创建包   mypackage  
  create   or   repalce   package   mypackage  
  as    
  begin  
      type   mycurtype   is   ref   cursor   return   hr.eployees%rowtype;  
      procedure   getemployeesinfo(mycurvar   out   mycurtype);  
  end   mypackage;  
  2   定义包体  
  create   or   replace   package   body   mypackage  
  begin  
      procedure   getemployeesinfo(mycurvar   out   mycurtype)  
      as    
      bgein  
          open   mycurvar   for   select   *   from   hr.employees;  
      end   getemployeesinfo;  
  end   mypackage;  
   
  在C#中调用  
  ...  
  mycmd.CommandText=mypackage.getemployees;  
  ... 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值