错误消息:找不到表0

| 首先,我想为这篇文章的长度道歉。但我希望您了解整个问题。 我必须合并三个数据集(
dsGetForm
dsmedication_details
dsbroadband_details
),并将结果显示在表中。 有时
dsbroadband_details
包含行,有时则不。 这就是我现在用来合并数据集的内容。
if (dsGetForm != null && dsmedication_details != null && dsbroadband_details != null)
{
   dsGetForm.Tables[0].Merge(dsmedication_details.Tables[0]);
   dsGetForm.Tables[0].Merge(dsbroadband_details.Tables[0]);
}
else if (dsGetForm == null && dsmedication_details != null)
{
   dsGetForm = dsmedication_details;
}
else if (dsGetForm == null && dsbroadband_details != null )
{
   dsGetForm = dsbroadband_details;
} 
问题是,当存储过程的结果为空时,用于填充数据集“ 2”的存储过程(SP)给我此错误消息   错误消息:找不到表0。   说明:未处理的异常   发生在执行   当前的Web请求。请查看   堆栈跟踪以获取更多信息   关于错误及其位置   起源于代码。      异常详细信息:   System.ServiceModel.FaultException`1 [[System.ServiceModel.ExceptionDetail,   System.ServiceModel,版本= 3.0.0.0,   文化=中立,   PublicKeyToken = b77a5c561934e089]]:   找不到表0 这是我的存储过程
Alter Procedure dbo.OEA_SP_GET_BROADBAND ( 
                @appid    NUMERIC,
                @clientid NUMERIC,
                @Lang Varchar(10))
AS 
   SET nocount  ON 
   BEGIN 
  declare @PIName as varchar(100)
  declare @username as varchar(20)
  declare @pform_id as varchar(20)
  declare @pform_desc as varchar(100)
  declare @userid varchar(20)
  declare @msn tinyint

  set @PIName=\'\'
  if exists(SELECT app_id from ext_well_new_programs (nolock) where app_id=@appid and new_prog_id=\'BB\' and status=\'A\')
  begin
      select @PIName=dbo.oea_fn_fetch_fullname(@appid,primary_msn,1,@lang,@clientID) 
          from app_application with (nolock)
      where app_id = @appid
  end 

  if @PIName <> \'\'
  begin
    select Distinct @username = dbo.oea_fn_fetch_caaname(prog.last_update_id, 30000) 
            from app_prog_submission prog (nolock) 
            where app_id = @appid

            select @userid = user_id, @msn = primary_msn 
            from app_application (nolock) 
            where app_id = @appid

            set @pform_id = \'learnmore\'
    set @pform_desc = \'Cash Back for Broadband at Home\'

    select @PIName as mem_name, @appid as app_id, @username as username, @pform_id as pform_id, @pform_desc as pform_desc, 0 as noncust, @userid as userid, @msn as msn
 END
     End
我认为,我需要在
if @PIName <> \'\'
条件之后添加
else
条件。 我的问题是那其他条件应该是什么? 由于我只需要
if @PIName <> \'\'
的select语句的值(末尾) 当这个条件为真时,我有点困惑,那还应该是什么? 任何帮助深表感谢。     
已邀请:
        在我看来,在某些情况下您的SP不会返回任何结果,因此没有\“表0 \”。我宁愿构造一个@results内存表,在此表中插入数据(如果有的话),并在退出SP之前做最后的“ 10”。或任何其他实际返回结果集(甚至为空)的SQL构造。     

要回复问题请先登录注册