Como usar um WebService para retornar um dataset Serializado

Ola Pessoal! Nesse artigo irei mostrar como fazer para criar um WebMethod para retornar um dataset serializado. Este por sua vez poderá ser usado numa aplicação .net que dê suporte a WebService. Dessa forma você pode adicionar suas regras de negócio no servidor independente de qual aplicação irá utilizá-la.

O primeiro passo é criar o seu WebService.
Para isso abra o seu Visual Studio e crie um novo projeto do tipo WebService Application.
Mude o seu nome para WebTeste.
 
 
2. Após criar o seu Ws. Você deverá criar um novo método para retornar um DataSet serializado. Observe a utilização da palavra chave [serializable] no cabeçalho da sua classe.
 

using System;

using System.Data;

using System.Data.SqlClient;

using System.Web;

using System.Collections;

using System.Web.Services;

using System.Web.Services.Protocols;

using System.ComponentModel;

namespace WebTeste

{

[Serializable]

[WebService(Namespace = "http://tempuri.org/")]

[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]

[ToolboxItem(false)]

public class Service1 : System.Web.Services.WebService

{

[WebMethod]

public DataSet getProdutos()

{

// criacao da conexao com a base de dados Pubs que vem com o sqlserver
 
SqlConnection conn = new SqlConnection("Initial Catalog=pubs;User Id=sa");

conn.Open();

try

{

// voce poderia criar um parametro no metodo getProdutos para realizar um filtro na tabela de autores
SqlDataAdapter da = new SqlDataAdapter("select * from authors", conn);

try

{

// cria um dataset para ser preenchido pelo adapter
DataSet ds = new DataSet();

da.Fill(ds);

return ds;

}

finally

{

// libera o adapter
da.Dispose();

}

}

finally

{

// libera a conexão
conn.Close();

}

}

}

}

3. Após compilar seu projeto você precisará saber a sua localização lógica por meio do seu WSDL. Para isso execute o seu projeto WS e clique na opção Service Description 
 
 
 
Copie o endereço que aparecerá no seu browser. Na minha máquina foi apresentado o seguinte endereço:
http://localhost:1330/Service1.asmx?WSDL. Mas lembre-se que em cada máquina a porta utilizada poderá ser diferente.
 
4. Agora crie um novo AspNet Project no visual studio e salve-o com o nome de UseWS. Deois adicione um botão e um GridView na página Default.aspx.
 
 
5. Agora temos que adicionar uma webReference ao nosso projeto. Lembre-se que você copiou a url que contém a especificação do seu WS. Então clique com o botão direito do mouse sobre o seu projeto no Solution Explorer e clique na opção Add Web Reference
 
 
Na janela que aparecerá coloque a url que contém o WSDL do seu WS e clique em Go. A descrição do seu WS aparecerá. Agora vamos mudar o nome da referência a esse objeto na caixa Web reference name para myWS, conforme figura abaixo. Depois clique em Add Reference.
 
 
 
6. Por ultimo implemente o código abaixo no clique do seu botão:
 

    // o seu grid agora esta recebendo o dataset serializado do seu WS.  Onde UseWS é o namespace

   // adotado para ele. myWS é o nome da nossa referência. Service1 é o nome do serviço que foi criado
   // qdo criamos o nosso WS. E getProdutos é o nosso esperado método;
 
    GridView1.DataSource = new UseWS.myWS.Service1().getProdutos();

   GridView1.DataBind();

7. Execute o proejto e qdo ele for carregado clique no botão Ok. Deverá ser apresentada uma página com uma relação de autores.
 
 
Espero que tenham gostado!
 
 
 
 

Artigos relacionados