C#调用Oracle数据库的存储过程填充Dataset

一数据表:
student(
studentid varchar2
   studentname varchar2
)
数据:
  studentid              studentname
  001                        001
  002        002
  002        003

第2步建包:
CREATE OR REPLACE PACKAGE PKG_SELECT_STUDENT
AS
   TYPE T_CURSOR IS REF CURSOR;
   PROCEDURE Getusername  
   (
      us_id IN Varchar2,
      cur_name OUT T_CURSOR
   );

第3步建包体:
CREATE OR REPLACE   PACKAGE  BODY PKG_SELECT_STUDENT
AS
PROCEDURE Getusername
(
us_id IN varchar2,
cur_name OUT T_CURSOR
   )
   IS
   BEGIN
      OPEN cur_name FOR
      SELECT   *   FROM student WHERE   studentid=us_id;
   END Getusername;
   END PKG_select_student;

  
第4步我的 webform.cs文件:

在文本框输入 ID,点击按钮查询,有多条数据填充显示在 gatagrid里面
private void Button3_Click(object sender, System.EventArgs e)
{
string usid=this.TextBox1.Text.Trim();
Selectop st=new Selectop();
this.DataGrid1.DataSource=st.GetSelectAll(usid);
this.DataGrid1.DataBind();
}

public DataSet GetSelectAll(string usid)
{
OracleConnection con = DBoracle.CreateConnection();
OracleCommand command = new OracleCommand();
DataSet ds = new DataSet();
try
{  

command.Connection=con;
command.CommandText="PKG_select_student.Getusername";
command.CommandType=CommandType.StoredProcedure;
command.Parameters.Add("us_id",OracleType.VarChar,10).Value=usid;
command.Parameters.Add("cur_name",OracleType.Cursor);
command.Parameters["cur_name"].Direction = ParameterDirection.Output;
OracleDataAdapter adapter = new OracleDataAdapter(command);
con.Open();
//command.ExecuteNonQuery();
//adapter.SelectCommand=command;
adapter.Fill(ds);
}
catch(System.Exception ex)
{
throw ex;
}
finally
{
con.Close();
command.Dispose();
//adapter.Dispose();
}
return ds;
}

转载于:https://www.cnblogs.com/xiachufeng/archive/2010/07/27/1785829.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值