none
Web Service - Retornando XML RRS feed

  • Pergunta

  • Olá,

    Eu estou rodando uma view que me retorna 5 registros em xml.

    Só que quando eu vou retornar no meu webservice ele só traz 2 registros.

    Aonde eu estou errando?

    Eu acho que o segredo está nos itens em negrito e em vermelho

    try

    {

    string cmd = "select * from vw_ListaProcesso as processos ";

    cmd += "where codigo='"+codigo+"' ";

    cmd += "FOR XML AUTO,ELEMENTS ";

    SqlCommand cmdSql = new SqlCommand(cmd, funDB1.conConexao);

    XmlReader DR_Lista;

    DR_Lista = cmdSql.ExecuteXmlReader();

    DR_Lista.MoveToContent();

    if (DR_Lista.Read())

    {

    retorno = "<?xml version='1.0' encoding='utf-8' ?><lista>";

    while(DR_Lista.Read())

    {

    retorno = retorno + (DR_Lista.ReadOuterXml());

    DR_Lista.Read();

    }

    retorno = retorno + "</lista>";

    }

    else

    {

    retorno = "001 - NAO TEM NADA";

    }

    DR_Lista.Close();

    }

    sexta-feira, 23 de junho de 2006 18:50

Respostas

  • Olá Alex,


    Percebi que após o retorno da quey vc ainda esta tratando o retono para criar um XML novamente....

    Talvez seria mais interessante retornar um SqlDataread normal e fazer a interação...
    OMais indicado seria retornar uma classe BO (Bussines Object) que sera serialziada pelo webservices.

    Outros  detalhes :

    - Sua query faz concatenação de string ficando sujeita A SQLINJECT . Troque para trabalhar com parametros ou use SP.

    - Sua fução esta retornando 2 tipos de dados , um XML quando da certo e uma string quando da errado, isso complica muito o código, podendo gerar erro de tipo quando consumido, seria + interessante garantir apenas um formato de retorno.

     

     

    sexta-feira, 23 de junho de 2006 21:56