开发环境:vs.net2003 c# asp.net oracle92010 水晶报表(vs.net2003自带的)
在:“查询”页面,点:查询按钮,用:SESSION变量,传给下一个页面:“结果”页面。在::“结果”页面,收到:SESSION变量,调用:一个公共的数据访问类。返回的DATASET,传给水晶报表,显示出来。
现在的问题是:点查询,一会儿出报表正常,再点相同的地方,条件不变,一会儿报以下错误:在执行之前,必须指定 CommandText。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: 在执行之前,必须指定 CommandText。
源错误:
行 294: OracleDataAdapter ad = new OracleDataAdapter();
行 295: ad.SelectCommand =cmd;
行 296: ad.Fill(ds);
行 297: return ds;
行 298: }
源文件: c:\inetpub\wwwroot\caea\application\dboperator.cs 行: 296 而这个类中这个地方,其它地方执行,是没有问题的。
请教,这是什么问题?查询oracle存储过程返回DATASET完整的代码是:
public override DataSet exeStoredForDataSet(string strStored,string[] strParams,object[] objValues)
//执行带参数的存储过程语句,返回DataSet
{
OracleCommand cmd=new OracleCommand();
cmd.Connection=this.conn ;
if(inTransaction)
cmd.Transaction=trans;
if((strParams!=null)&&(strParams.Length!=objValues.Length))
throw new System.Exception("查询参数和值不对应!");
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText=strStored;
if(strParams!=null)
{
for(int i=0;i<strParams.Length;i++)
cmd.Parameters.Add(strParams[i],objValues[i]);
OracleParameter parrc=new OracleParameter("P_CURSOR",OracleType.Cursor);
parrc.Direction = ParameterDirection.Output;
cmd.Parameters.Add(parrc);
}
DataSet ds = new DataSet();
OracleDataAdapter ad = new OracleDataAdapter();
ad.SelectCommand =cmd;
ad.Fill(ds);
return ds;
}
}
在:“查询”页面,点:查询按钮,用:SESSION变量,传给下一个页面:“结果”页面。在::“结果”页面,收到:SESSION变量,调用:一个公共的数据访问类。返回的DATASET,传给水晶报表,显示出来。
现在的问题是:点查询,一会儿出报表正常,再点相同的地方,条件不变,一会儿报以下错误:在执行之前,必须指定 CommandText。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.InvalidOperationException: 在执行之前,必须指定 CommandText。
源错误:
行 294: OracleDataAdapter ad = new OracleDataAdapter();
行 295: ad.SelectCommand =cmd;
行 296: ad.Fill(ds);
行 297: return ds;
行 298: }
源文件: c:\inetpub\wwwroot\caea\application\dboperator.cs 行: 296 而这个类中这个地方,其它地方执行,是没有问题的。
请教,这是什么问题?查询oracle存储过程返回DATASET完整的代码是:
public override DataSet exeStoredForDataSet(string strStored,string[] strParams,object[] objValues)
//执行带参数的存储过程语句,返回DataSet
{
OracleCommand cmd=new OracleCommand();
cmd.Connection=this.conn ;
if(inTransaction)
cmd.Transaction=trans;
if((strParams!=null)&&(strParams.Length!=objValues.Length))
throw new System.Exception("查询参数和值不对应!");
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText=strStored;
if(strParams!=null)
{
for(int i=0;i<strParams.Length;i++)
cmd.Parameters.Add(strParams[i],objValues[i]);
OracleParameter parrc=new OracleParameter("P_CURSOR",OracleType.Cursor);
parrc.Direction = ParameterDirection.Output;
cmd.Parameters.Add(parrc);
}
DataSet ds = new DataSet();
OracleDataAdapter ad = new OracleDataAdapter();
ad.SelectCommand =cmd;
ad.Fill(ds);
return ds;
}
}
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货