NUNCA MAIS PASSE RAIVA POR NÃO CONSEGUIR RESOLVER UM PROBLEMA COM O EXCEL - GARANTIDO!

UNIVERSIDADE DO VBA - Domine o VBA no Excel Criando Sistemas Completos - Passo a Passo - CLIQUE AQUI

Você está em: PrincipalTutoriaisLanodecastro : Webservices006
Quer receber novidades e e-books gratuitos?

FILTRO DE TUTORIAIS:


 

Sistema de Enquetes baseado em WebServices –Parte VI

 

Olá pessoal,

 

Hoje finalmente concluiremos nosso sistema. Nesta etapa iremos apenas criar o serviço que armazenará o voto do participante, bem como a interface que consumirá este serviço.

 

Abra o VS .Net 2003 , e no projeto Enquetes, abra o arquivo VisualizarEnquete.aspx.

 

 

Arraste um controle de validação do tipo RequiredFieldValidator:

 

 

Configure as seguintes propriedades:

 

ErrorMessage=É necessário escolher uma das alternativas

 

ControlToValidate=rdItens

 

Isto impedirá a possibilidade de voto sem escolher alguma das alternativas.

 

Clique uma vez apenas no Button btnResultado. Vá na guia de propriedades e na propriedade CausesValidation marque false. Isto é para que seja possível visualizar o resultado sem escolher uma das alternativas.

 

Agora, abra o arquivo que contém nossos WebServices, o arquivo EnqueteService.asmx.

 

Vamos implementar o código que armazenará o voto. Para isso, toda vez que este serviço for implementado, será necessário passar o IDItem como parâmetro. Digite o código conforme segue abaixo:

 

      public bool AddVoto(int IDItem)

            {

                  //Instancia um novo objeto OleDbCommand

                  OleDbCommand OleDbCmd=new OleDbCommand();

                  //Indica o tipo de comando

                  OleDbCmd.CommandType=CommandType.Text;

                  //string que fará a adição de mais um voto

                  OleDbCmd.CommandText="Update TbItens set Votos=Votos+1 where IDItem=" + IDItem + "";

                  //Indica qual a conexão a ser usada

                  OleDbCmd.Connection=Conexao;

                  //Abre a conexão

                  Conexao.Open();

                  //Executa o comando

                  try

                  {

                        OleDbCmd.ExecuteNonQuery();

                        return true;

                  }

                        //Caso ocorra uma excessão retorna falso

                  catch(OleDbException)

                  {

                        return false;

                  }

                        //Encerra a conexão idependente do erro

                  finally

                  {

                        Conexao.Close();

                        Conexao.Dispose();

                  }

 

A novidade para nós está no tratamento de erros através dos blocos Try, Catch e Finally. Em um próximo tutorial abordaremos este tema com mais ênfase.

 

Vejam que nosso serviço não retornará nenhum dado do banco de dados, mas retornará um valor do tipo verdadeiro ou falso para facilitar a execução do código.

 

Ótimo, agora implementaremos o serviço no arquivo VisualizarEnquete.aspx.

 

No evento Click do btnVotar, digite o seguinte código, conforme mostrado abaixo:

 

private void btnVotar_Click(object sender, System.EventArgs e)

            {

                  //Verifica se o cookie Enquetes existe

                  if(Request.Cookies["Enquetes"]==null)

                  {

                        //Caso não exista cria uma nova instância do serviço

                        localhost.EnqueteService es=new Enquetes.localhost.EnqueteService();

                        //Adiciona e ao mesmo tempo verifica se o voto foi adicionado

                        if(es.AddVoto(Convert.ToInt32(rdItens.SelectedValue)))

                        {

                             //Cria um Cookie que impede que o usuário vote mais de uma vez

                             Response.Cookies["Enquetes"].Value="Gravado";

                             //Indica que o Cookie expirará em 1 dia

 

Response.Cookies["Enquetes"].Expires=System.DateTime.Now.AddDays(1);

                             //Emite a resposta ao usuário através da caixa de diálogo do JavaScript

                             Response.Write("<script>alert('Voto Computado!Obrigado por participar!')</script>");

                        }

                       

                  }

                        //Caso o cookie já exista

                  else

                  {

                        //Emite a resposta ao usuário através da caixa de diálogo do JavaScript

                        Response.Write("<script>alert('Você já votou nesta enquete!')</script>");

 

                  }

            }

 

Vejam que o código é bem simples. Vejam que quando é executado o código para a inclusão de um novo voto, ao mesmo tempo é verificado seu retorno (true/false), isto porque criamos um serviço do tipo Bool.

 

Outra questão importante é que criamos um Cookie para assegurarmos de que o usuário não votará mais de uma vez. É claro que se ele excluir os cookies de sua máquina será possível votar, mas pelo menos estamos impedindo que ele clique várias vezes no botão, votando sequencialmente sem parar.

 

O cookie foi configurado para expirar em um dia. Isto é opcional, depende de quanto em quanto tempo as enquetes serão publicadas no site.

 

Vamos aos nossos testes:

 

 

Tentativa de votar sem escolher um item...

 

 

Voto computado...

 

 

Nova tentativa de voto, mas sem sucesso...

 

 

Exibição do gráfico...

 

Pois é pessoal, concluímos aqui nosso tutorial. É claro que este sistema pode melhorar, e você é bem capaz de fazer isso.

 

Espero que tenham gostado e que seja muito útil para a comunidade desenvoldedora.

 

Um abraço e até mais,

 

Lano de Castro

 

Quer receber novidades e e-books gratuitos?

Cursos Online

  • Banco de Dados
  • Carreira
  • Criação/Web
  • Excel/Projetos
  • Formação
  • + Todas as categorias
  • Contato: Telefone: (51) 3717-3796 | E-mail: webmaster@juliobattisti.com.br | Whatsapp: (51) 99627-3434

    Júlio Battisti Livros e Cursos Ltda | CNPJ: 08.916.484/0001-25 | Rua Vereador Ivo Cláudio Weigel, 537 - Universitário, Santa Cruz do Sul/RS, CEP: 96816-208

    Todos os direitos reservados, Júlio Battisti 2001-2020 ®

    [LIVRO]: MACROS E PROGRAMAÇÃO VBA NO EXCEL 2010 - PASSO-A-PASSO

    APRENDA COM JULIO BATTISTI - 1124 PÁGINAS: CLIQUE AQUI