【发布时间】:2018-10-29 05:17:46
【问题描述】:
我在 Oracle 和 vb.net 中有以下代码和存储过程。当我执行代码时,数据集没有返回任何内容。
后面的代码:
grvResults.PageSize = DirectCast(Profile.GetPropertyValue("rowcount"), Integer)
grvResults.DataSourceID = "dsResults"
数据源:
public static DataSet Fetch(string sp, OracleParameter[] inputParams)
{
OracleConnection conn = new OracleConnection(System.Configuration.ConfigurationManager.AppSettings.Get("BertConnection"));
cmd = new OracleCommand(sp, conn);
cmd.CommandType = CommandType.StoredProcedure;
if (inputParams != null)
{
cmd.Parameters.AddRange(inputParams);
}
cmd.Parameters.Add(new OracleParameter("resultset", OracleDbType.RefCursor, ParameterDirection.Output));
DataSet ds = new DataSet();
.
.
.
存储过程:
CREATE OR REPLACE PROCEDURE BERT."SP_BIA_OBLIGATION_GROUPED" (
p_bfy in varchar2,
p_fy in varchar2,
p_fm in varchar2,
p_appropriation in varchar2,
p_fund in varchar2,
p_fund_center in varchar2,
p_func_area in varchar2,
p_program in varchar2,
p_boc in varchar2,
p_from_inception in char,
p_red_only in char,
resultset out sys_refcursor
)
AS
BEGIN
OPEN resultset FOR
select decode(grouping(t.description), 1, 'TOTAL', t.description) as description,
case when p_from_inception = '0' then sum(t.amount_cfy) else sum(t.amount_inc) end as amount
from mv_bia_obligation_grouped t
.
.
.
group by grouping sets ((), (t.description))
HAVING count(*) != 0;
存储过程执行并返回所需的结果,但从 vb.net 调用时没有提供任何数据。在单步执行代码时,我检查了正确的参数值,当我检查数据集时它只有标题没有数据。有谁知道这里发生了什么?
提前致谢。
【问题讨论】:
-
连接
resultset参数绑定到ds数据集的代码在哪里?你说你正在使用vb.net,但这对我来说确实像 C#。 ??? -
嗨,鲍勃,我有一个混合代码。页面有 vb 代码,类有 C#。感谢您指出这一点。