Olá Régis
Seria necessário eu ver o seu select, mas pelo que estou vendo no código abaixo se o seu DataSet conter mais de uma tabela basta mudar o índice.
Exemplo
dsReultado.Tables[0].Rows[0] - Select 1
dsReultado.Tables[1].Rows[0] - Select 2
Espero ter ajudado
Fabio
==========================================
DataSet dsReultado;
//em caso de algum erro inesperado na procedure o sistema informa o erro e mostra a mensagem gerada pela procedure
try
{
dsReultado = executaProcedure.ExecuteDataSet();
}
catch (Exception ex)
{
return new RetornoWebService(TipoRetornoWebService.Erro, String.Format("Ocorreu um erro ao executar o comando de inclusÆo. Mensagem do servidor: ", ex.Message));
}
//se a procedure retornar um resultado usa este resultado senÆo retorna um erro informando que a procedure nÆo retornou resultados
if (dsReultado.Tables.Count > 0 && dsReultado.Tables[0].Rows.Count > 0)
return new RetornoWebService((TipoRetornoWebService)Convert.ToInt32(dsReultado.Tables[0].Rows[0][0]), Convert.ToString(dsReultado.Tables[0].Rows[0][1]));
else
return new RetornoWebService(TipoRetornoWebService.Erro, "A StoredProcedure nÆo retornou resposta de resultado.");
Olha não funcionou, fiz uma alteração ficou como abaixo, mas também só vem uma consulta. O select está embaixo do método:
[WebMethod]
public DataTable SelectAllUser(
string Identifier,
int Language)
{
DBAccess executaProcedure = new DBAccess();
executaProcedure.SetCommandType(CommandType.StoredProcedure);
executaProcedure.CommandText = "schUser.SELECT_ALL_USER_EZ";
#region Insere Parametros para a Procedure
executaProcedure.AddParameter("@Identifier", Identifier);
executaProcedure.AddParameter("@Language", Language);
#endregion
return executaProcedure.ExecuteDataSet().Tables[0];
-- Mesmo INSERINDO TABLER[1] AQUI TAMBÉM NÃO FUNCIONOU.
---------------------------------------------------------------------------------------------
ALTER PROCEDURE [schUser].[SELECT_ALL_USER_EZ]
(
@Identifier nvarchar(50),
@Language int
) AS BEGIN
--DECLARE @Identifier nvarchar(50)
DECLARE @IdPartner INT
DECLARE @Description NVARCHAR(255)
IF NOT EXISTS(SELECT 1 FROM schAdmin.Partners WHERE Identifier = @Identifier)
BEGIN
SELECT
@Description = [DESCRIPTION]
FROM schAdmin.Errors WHERE IdError = 100 AND [Language] = @Language
SELECT 2 AS TIPO, @Description AS MENSAGEM
END ELSE BEGIN
SELECT
@IdPartner = IDPARTNER
FROM schAdmin.Partners WHERE Identifier = @Identifier
--SE EXISTE USUÀRIO NO BANCO PARA ESTE @Identifier
BEGIN
SELECT
schUser.Users.IdUser as UserNum,
schUser.Users.DocFormat as FormatoDoc,
schUser.Users.DocNum as CPF_CNPJ,
schUser.Users.RegNum as RG,
schUser.Users.RegFrom as OrgaoEmissor,
schUser.Users.Title as Titulo,
schUser.Users.FirstName as PrimeiroNome,
schUser.Users.MiddleName as NomeDoMeio,
schUser.Users.LastName as Sobrenome,
schUser.Users.Birth as DataNascimento,
schUser.Users.Sex as Sexo,
schUser.PhoneContact.DDD,
schUser.PhoneContact.PhoneContactDay as MelhorHora,
schUser.PhoneContact.PhoneNumType as TipoDeTelefone,
schUser.PhoneContact.PhoneNumber as TelefonePrincipal,
schUser.EmailAddress.TypeEmail as EmailPrincipal,
schUser.EmailAddress.EmailAddress as Email,
schUser.EmailAddress.EmailFormat as FormatoDoEmail,
schUser.Address.AddressType as TipoEndereco,
schUser.Address.AddressNumber as Numero,
schUser.Address.AddressInfo as Complemento,
schUser.Address.InfoReference as PontoDeReferencia,
schAdmin.PostalCode.City as Cidade,
schAdmin.PostalCode.Address as Endereco,
schAdmin.PostalCode.Ward as Bairro,
schAdmin.PostalCode.PostalCode as CEP,
schAdmin.PostalCode.TypeAddress as Logradoro,
schAdmin.PostalCode.SState as Estado
FROM schUser.Users INNER JOIN
schUser.PhoneContact ON schUser.Users.IdUser = schUser.PhoneContact.IdUser INNER JOIN
schUser.EmailAddress ON schUser.Users.IdUser = schUser.EmailAddress.IdUser INNER JOIN
schUser.Address ON schUser.Users.IdUser = schUser.Address.IdUser INNER JOIN
schAdmin.PostalCode ON schUser.Address.IdPostalCode = schAdmin.PostalCode.IdPostalCode
WHERE
(schUser.Users.IdPartner = @IdPartner)
AND (schUser.Users.Activated = 'T')
AND (schUser.EmailAddress.TypeEmail = 'M')
AND (schUser.Address.AddressType = 'Home' OR schUser.Address.AddressType = 'Both')
AND (schUser.PhoneContact.PhoneType = 'M')
-- Segundo Select....
SELECT
IdEmail,
EmailAddress,
EmailFormat
FROM schUser.EmailAddress
WHERE UPPER(TypeEmail) = 'S'
AND (IdPartner = @IdPartner)
END
END
END
OBRIGADO
Eu não tenho como rodar sua query por não ter a estrutura,
mas é fácil saber o conteúdo do seu Dataset.
Perceba que nas telas abaixo eu recupero um DataTable, no momento que eu crio
eu consigo visualizar o conteúdo clicando na lupa, faça o mesmo, no meu caso
como ele é um DataTable só tem uma linha, se você diz que o seu select retorna
duas consultas então ele tem que ter dois DataTables que é um DataSet. Confirme
fazendo um debug.
Em seguida recupere pelo índice.
Exemplo 1 - No Debug em dt eu consigo ver o valor do DataTable
Exemplo 2 - Conteúdo do DataTable - perceba que só tenho um resultado.
Com estes exemplos você consegue visualizar porque não recupera o segundo select.
Espero ter ajudado
Fabio
Régis,
a resposta do consultor foi suficiente? Podemos encerrar o chamado?
Acho que não consegui passar para ele claramente o que eu precisava.
Att
Regis
Régis,
em que vc ainda tem dúvidas?
Para deixar sua dúvida mais clara seria a gravação de um video mostrando ao consultor em que vc ainda tem dúvidas.
caso não saiba como fazer isso, assista ao video explicativo que está ao lado da opção "meus videos" na home do suporte.