rdlc 加载oracle存储过程结果集
来源:互联网 发布:制作淘宝详情页 编辑:程序博客网 时间:2024/05/29 17:54
最近在项目中用到了vs rdlc。在加载存储过程返回的结果集时,总得不到值,最后在网上查了查,总算解决了问题,写下来,加深一下记忆力。
有些老生常谈了 各位大侠、大牛们别见怪,见谅则个。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Configuration;
using Oracle.DataAccess;
using Oracle.DataAccess.Client;
using Oracle.DataAccess.Types;
using System.Data;
using System.Data.OleDb;
/// <summary>
///DBOperate 的摘要说明
/// </summary>
public class DBOperate
{
static String strconn = ConfigurationManager.AppSettings["ORACONNECTIONSTRING"].ToString();
OracleConnection oraconn = null;
public DBOperate()
{
//
//TODO: 在此处添加构造函数逻辑
//
}
public OracleConnection getConn()
{
oraconn = new OracleConnection(strconn);
oraconn.Open();
return oraconn;
}
public OracleConnection closeConn()
{
oraconn.Dispose();
oraconn.Close();
return oraconn;
}
/// <summary>
/// 返回存储过程数据集
/// </summary>
/// <param name="rq">日期</param>
/// <param name="fjkdbm">参数1param>
/// <param name="jrjc">参数2</param>
/// <returns></returns>
public DataTable getProcDs(String rq, String fjkdbm, int jrjc)
{
DataTable dt = new DataTable();//声明要返回的datatable
OracleTransaction otr = getConn().BeginTransaction();//开始数据库事务
using (OracleCommand oracomm = oraconn.CreateCommand())//创建command,不要用new command
{
oracomm.Connection = oraconn;
oracomm.Transaction = otr;
oracomm.CommandText = "pk_rpt01.p_rpt01";//包头.包体
oracomm.CommandType = CommandType.StoredProcedure;
// 声明参数,双引号里面的最好和存储过程中的变量一样。
OracleParameter para_cursor = new OracleParameter("p_cursor",OracleDbType.RefCursor);
para_cursor.Direction = ParameterDirection.Output;
OracleParameter para_rq = new OracleParameter("s_rq", OracleDbType.Varchar2);
para_rq.Direction = ParameterDirection.Input;
para_rq.Value = rq.Trim();
OracleParameter para_dbm = new OracleParameter("s_fjkdbm", OracleDbType.Varchar2);
para_rq.Direction = ParameterDirection.Input;
para_dbm.Value = fjkdbm.Trim();
OracleParameter para_bz = new OracleParameter("i_cxbz", OracleDbType.Int32);
para_rq.Direction = ParameterDirection.Input;
para_bz.Value = jrjc;
//个人感觉应该要跟写的存储过程中,声明的参数顺序一样。
oracomm.Parameters.Add(para_cursor);
oracomm.Parameters.Add(para_rq);
oracomm.Parameters.Add(para_dbm);
oracomm.Parameters.Add(para_bz);
try
{
OracleDataAdapter oda = new OracleDataAdapter(oracomm);
oda.Fill(dt);
oda.Dispose();
}
finally
{
oracomm.Dispose();
closeConn();
}
return dt;
}
}
}
至于如何将数据集dt加载到rdlc,网上有很多 ,就不废话了。
- rdlc 加载oracle存储过程结果集
- [Oracle]Oracle 存储过程返回结果集
- Oracle 存储过程返回结果集
- Oracle 存储过程返回结果集
- Oracle 存储过程返回结果集
- Oracle 存储过程返回结果集
- Oracle 存储过程返回结果集
- Oracle 存储过程返回结果集
- Oracle 存储过程返回结果集
- 调用Oracle存储过程返回结果集
- oracle 返回结果集的存储过程
- oracle存储过程返回结果集
- Oracle存储过程返回结果集
- oracle存储过程返回结果集SYS_REFCURSOR
- oracle 存储过程返回结果集
- oracle 存储过程返回结果集
- oracle存储过程返回结果集
- Oracle存储过程如何返回结果集
- 生产者/消费者模型、读写模型、线程池
- [sql server][office] 未在本地计算机上注册“Microsoft.Jet.OLEDB.4.0”提供程序
- C# Socket编程笔记
- JSP带中文请求参数乱码的解决方法
- DM355的启动方式,nand boot,uart boot
- rdlc 加载oracle存储过程结果集
- Oracle常用SQL语句
- java串口编程配置问题解决
- 简述Android触摸屏手势识别(转)
- 在VC中使用MATLAB C/C++函数库
- def文件 及 库的正确导入导出
- 社会化分享排名:QQ空间第一、新浪微博第二
- 超级恶心的大批量数据导出到Excel
- oracle 汉字转拼音