从到南京这边做Delphi开发以后,数据库从SqlServer转到Oracle,开发平台从C#转到 Delphi,原来在C#+SqlServer下直接用存储过程select数据库表变成了一件非常难得事,这几天刚刚把前面一个项目做完,终于空下有有时间自己钻研一下,花了我一天时间通过查资料,写小DEMO,终于把这件难题解决了,现在把代码和过程发布出来,希望能给有需要的朋友一点小小的帮助,也请各位多多指教才是!
数据库端:
1.创建包
2.创建包体
C#端,因为做的是Asp.net程序,所以是在页面的page_load事件中写得
以上是C#通过存储过程从Oracle数据库读取表数据的示例,请大家多多指教!!
数据库端:
1.创建包
create
or
replace
package showmessage
is
-- Author : jack.zy
-- Created : 2008-3-25 12:50:58
-- Purpose :
-- Public type declarations
type mytype is ref cursor ;
procedure myshow(mycur out mytype);
end showmessage;
-- Author : jack.zy
-- Created : 2008-3-25 12:50:58
-- Purpose :
-- Public type declarations
type mytype is ref cursor ;
procedure myshow(mycur out mytype);
end showmessage;
create
or
replace
package body showmessage
is
-- Author : jack.zy
-- Created : 2008-3-25 12:50:58
-- Purpose :
-- Function and procedure implementations
procedure myshow(mycur out mytype)
is
begin
open mycur for select * from sys_user;
end myshow;
end showmessage;
-- Author : jack.zy
-- Created : 2008-3-25 12:50:58
-- Purpose :
-- Function and procedure implementations
procedure myshow(mycur out mytype)
is
begin
open mycur for select * from sys_user;
end myshow;
end showmessage;
using
System;
using System.Data;
using System.Configuration;
using System.Collections;
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;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
OracleConnection conn = new OracleConnection();//创建一个连接
conn.ConnectionString = "Data Source=PACIA;User Id=pecgis_ypc_001;Password=sa;Integrated Security=no;";//指定连接字符串
OracleCommand cmd = new OracleCommand();//创建一个命令
cmd.Connection = conn;//指定命令连接
cmd.CommandType = CommandType.StoredProcedure;//指定命令类型
cmd.CommandText = "showmessage.myshow";//指定当前执行存储过程
OracleParameter param = new OracleParameter("mycur",OracleType.Cursor);//创建一个连接参数为游标类型
param.Direction = System.Data.ParameterDirection.Output;//指定当前参数为输出类型
cmd.Parameters.Add(param);//为命令添加参数
OracleDataAdapter da = new OracleDataAdapter();//创建适配器
DataSet ds = new DataSet();//创建数据集
da.SelectCommand = cmd;//指定当前适配器命令
da.Fill(ds, "sys_user");//填充数据集
this.gvList.DataSource = ds.Tables["sys_user"].DefaultView;//指定数据显示控件目标数据
this.gvList.DataBind();//绑定数据显示控件
}
}
using System.Data;
using System.Configuration;
using System.Collections;
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;
public partial class Default2 : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
OracleConnection conn = new OracleConnection();//创建一个连接
conn.ConnectionString = "Data Source=PACIA;User Id=pecgis_ypc_001;Password=sa;Integrated Security=no;";//指定连接字符串
OracleCommand cmd = new OracleCommand();//创建一个命令
cmd.Connection = conn;//指定命令连接
cmd.CommandType = CommandType.StoredProcedure;//指定命令类型
cmd.CommandText = "showmessage.myshow";//指定当前执行存储过程
OracleParameter param = new OracleParameter("mycur",OracleType.Cursor);//创建一个连接参数为游标类型
param.Direction = System.Data.ParameterDirection.Output;//指定当前参数为输出类型
cmd.Parameters.Add(param);//为命令添加参数
OracleDataAdapter da = new OracleDataAdapter();//创建适配器
DataSet ds = new DataSet();//创建数据集
da.SelectCommand = cmd;//指定当前适配器命令
da.Fill(ds, "sys_user");//填充数据集
this.gvList.DataSource = ds.Tables["sys_user"].DefaultView;//指定数据显示控件目标数据
this.gvList.DataBind();//绑定数据显示控件
}
}