Сначала я хотел бы извиниться за длину этого поста. Но я хочу, чтобы вы поняли всю проблему.
Я должен объединить три набора данных (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;
}
Проблема в том, что хранимая процедура (SP), которая используется для заполнения набора данных dsbroadband_details
, выдает мне это сообщение об ошибке, когда результат хранимой процедуры равен нулю
Сообщение об ошибке: не удается найти таблицу 0.
Описание: необработанное исключение
произошло во время исполнения
текущий веб-запрос. Пожалуйста, просмотрите
трассировка стека для получения дополнительной информации
про ошибку и где она
возник в коде.
Сведения об исключении:
System.ServiceModel.FaultException`1 [[System.ServiceModel.ExceptionDetail,
System.ServiceModel, версия = 3.0.0.0,
Culture = нейтрально,
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
Я думаю, мне нужно добавить условие else
после условия if @PIName <> ''
.
Мой вопрос: каким должно быть это условие?
Так как мне нужны только значения оператора select (в конце) if @PIName <> ''
условие, когда это условие истинно, я немного запутался, что еще должно быть?
Любая помощь очень ценится.