c#调用Oracle存储过程返回的游标结果代码实例
2013-07-17 16:53
525 查看
之前对Oracle的接触都未牵涉到这一块的,刚开始确实不知道怎么处理,网上也查了写资料,但是都比较散,所以还是整理一下吧,仅供大家参考:
1、oracle中存储过程如下:
CREATE OR REPLACE PROCEDURE UP_dzSURFACE_EBGJSY(
TKALA VARCHAR2 , RC1 out PK_Var.RC )
AS
sSQL varchar2(2000) ;
begin
sSQL := ' select
TKALA as "旧编号" ,
GCEABG as "取样深度" , "LOAD1" as "加荷" ,
GCDLAG as "a" , GCDKBD as "Es" , GCDLAQ as "回弹指数Cs"
from tbdzEBGJSY where Upper(TKALA)='''|| Upper(TKALA) || ''' ' ;
Open RC1 for sSQL;
return;
end UP_dzSURFACE_EBGJSY;
2、c#代码如下:
//创建oracle参数
OracleParameter[] sqlParme = new OracleParameter[2]
//参数1
sqlParme[0] = new OracleParameter("RC1", OracleType.Cursor);
sqlParme[0].Direction = ParameterDirection.Output;
sqlParme[1] = new OracleParameter("TKALA", OracleType.VarChar);
sqlParme[1].Direction = ParameterDirection.Input;
sqlParme[1].Value = aHoleOldNum;
//从存储过程中获取dataTable数据源
private DataTable DBExecStoredProcedure(string storeureName, OracleParameter[] sqlParme)
{
try
{
//使用微软的ORACLE访问接口
if (DBHelper.G_pDBConn.State == ConnectionState.Closed)//获取数据连接
DBHelper.G_pDBConn.Open();
OracleCommand oraCmd = new OracleCommand(storeureName, DBHelper.G_pDBConn);
oraCmd.CommandType = CommandType.StoredProcedure;
oraCmd.Parameters.Clear();//先清空
foreach (OracleParameter parme in sqlParme)
{
oraCmd.Parameters.Add(parme);
}
DataTable table = new DataTable();
DateTime BegTime = System.DateTime.Now;
OracleDataAdapter da1 = new OracleDataAdapter(oraCmd);//取出数据
da1.Fill(table);
return table;
}
catch (Exception ex)
{
MessageBox.Show("执行存储过程失败:"+ex.Message,"调试");
return null;
}
finally {
DBHelper.G_pDBConn.Close();
}
}
最后,大致的过程就是这样了,希望对大家有帮助吧!
1、oracle中存储过程如下:
CREATE OR REPLACE PROCEDURE UP_dzSURFACE_EBGJSY(
TKALA VARCHAR2 , RC1 out PK_Var.RC )
AS
sSQL varchar2(2000) ;
begin
sSQL := ' select
TKALA as "旧编号" ,
GCEABG as "取样深度" , "LOAD1" as "加荷" ,
GCDLAG as "a" , GCDKBD as "Es" , GCDLAQ as "回弹指数Cs"
from tbdzEBGJSY where Upper(TKALA)='''|| Upper(TKALA) || ''' ' ;
Open RC1 for sSQL;
return;
end UP_dzSURFACE_EBGJSY;
2、c#代码如下:
//创建oracle参数
OracleParameter[] sqlParme = new OracleParameter[2]
//参数1
sqlParme[0] = new OracleParameter("RC1", OracleType.Cursor);
sqlParme[0].Direction = ParameterDirection.Output;
sqlParme[1] = new OracleParameter("TKALA", OracleType.VarChar);
sqlParme[1].Direction = ParameterDirection.Input;
sqlParme[1].Value = aHoleOldNum;
//从存储过程中获取dataTable数据源
private DataTable DBExecStoredProcedure(string storeureName, OracleParameter[] sqlParme)
{
try
{
//使用微软的ORACLE访问接口
if (DBHelper.G_pDBConn.State == ConnectionState.Closed)//获取数据连接
DBHelper.G_pDBConn.Open();
OracleCommand oraCmd = new OracleCommand(storeureName, DBHelper.G_pDBConn);
oraCmd.CommandType = CommandType.StoredProcedure;
oraCmd.Parameters.Clear();//先清空
foreach (OracleParameter parme in sqlParme)
{
oraCmd.Parameters.Add(parme);
}
DataTable table = new DataTable();
DateTime BegTime = System.DateTime.Now;
OracleDataAdapter da1 = new OracleDataAdapter(oraCmd);//取出数据
da1.Fill(table);
return table;
}
catch (Exception ex)
{
MessageBox.Show("执行存储过程失败:"+ex.Message,"调试");
return null;
}
finally {
DBHelper.G_pDBConn.Close();
}
}
最后,大致的过程就是这样了,希望对大家有帮助吧!
相关文章推荐
- C#调用Oracle存储过程返回多结果集
- C#调用ORACLE存储过程返回结果集
- C#调用ORACLE存储过程返回结果集
- C#调用ORACLE存储过程返回结果集
- C#调用ORACLE存储过程返回结果集
- php利用soap实现调用获取返回信息的代码实例
- Oracle存储过程返回游标实例详解
- C#调用Quartz实例代码
- C#调用ORACLE存储过程返回结果集及函数
- C#调用ORACLE存储过程返回结果集及函数
- C#调用ORACLE存储过程返回结果集及函数
- oracle创建存储过程并返回结果集(附C#调用代码)
- 123 c#调用oracle存储过程返回数据集 --通过oracle存储过程返回数据集
- Javascript 直接调用服务器C#代码 ASP.NET Ajax实例
- ibatis调用oracle存储过程,返回游标集合
- Unity调用外接摄像头的实例代码(C#)
- 用C#调用存储过程返回结果集 & 连接查询结果的union
- mybatis 调用存储过程 返回游标 实例
- 编写存储过程返回的结果集在游标中使用java代码调用
- ado.net oledb 调用oracle存储过程返回结果集