ASP .NET - Criando um Livro de Visitas básico II


Na primeira parte deste artigo definimos o objetivo e criamos a página para exibir os registros do livro de visitas usando um DataList.

Vamos agora definir uma nova página para permitir que sejam postados os comentários no livro de visitas.

Abra o projeto criado e clique com o botão direito sobre o nome do web site e selecione Add New Item e selecione o template WebForm , a linguagem Visual Basic e informe o nome postaComentario.aspx.

Selecione a página postaComentario.aspx e defina o seguinte leiaute na página:

Primeiro inclua uma tabela com 12 linhas e duas colunas  a partir do menu Table-> Insert Table

Em seguida inclua os controles:

  • 4 Label - nome, email e comentário e aviso
  • 3 TextBox - txtNome, txtEmail e txtComentario
  • 1 Button - btnEnviar
  • 1 label - lblmsg

 

Para efetuar a validação do nome , email e comentario vamos usar os controles de validação do ASP .NET.

Na toolbox temos na guia Validation os controles que podemos usar para efetuar a validação descrição resumida abaixo:

1- RequiredFieldValidator  - Torna o controle associado de preenchimento obrigatório e verifica se o usuário digitou ou selecionou algo.Ex: Campos de preenchimento obrigatório.

2- CompareValidator - Realiza a comparação do valor informando com um valor informado em outro controle ou com uma constante.Ex: Validação de senhas.

3- RangeValidator - Faz a validação do valor informado verificando se ele se encontra  dentro de um intervalo de valores aceitos pela aplicação. Permite-se a validação de um valor máximo , mínimo ou ambos.

4- RegularExpressionValidator - Verifica se os dados entrados coincide com uma expressão regular. Ex: validações de CEP, RG , CPF , etc..

5- CustomValidator - Permite que você crie o seu próprio código de validação de dados.

6- ValidationSummary - Permite a exibição de um resumo de todas as validações feitas na página.

 

A partir da ToolBox na aba Validation vamos primeiro validar o campos nome, email e comentario usando o controle RequiredFieldValidator definidos da seguinte forma:

campo descrição
nome  ID= reqNome            ErrorMessage = Informe o nome              ControlToValidate = txtNome                      Text = *
email  ID= reqEmail            ErrorMessage = Informe o email              ControlToValidate = txEmail                        Text = *
comentario  ID= reqComentario   ErrorMessage = Poste um comentario       ControlToValidate = txComentario               Text = *

Vamos usar também o controle RegularExpressionValidator  para validar o e-mail configurando o controle assim:

campo descrição
email  ID= regexValidaEmail       ErrorMessage = E-mail inválido      ControlToValidate = txEmail          Text = *     

 ValidationExpression: \w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*         <-- (esta é expressão regular usada para validar o email)

Inclua também um controle ValidationSummary  na base da página para resumir as validações definindo o seu ID como validPagina;

Inclua também um LinkButton com as seguintes  propriedades:

No evento Click do botão de comando Enviar Comentario vamos colocar o código que irá se conectar com o banco de dados e salvar os dados do mesmo.

 Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnEnviar.Click
        'verifica se foram informados dos dados requeridos
        If txtNome.Text <> String.Empty And txtEmail.Text <> String.Empty And txtComentario.Text <> String.Empty Then
            
            'Define a string de conexão e o local do banco de dados na pasta App_Data
             Dim strConn As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
                                               & Server.MapPath("App_data/livro.mdb") & ";"
            'monta a instrução SQL que vai incluir os dados na tabela Visitas
            Dim mysql As String = "INSERT INTO Visitas (Nome, EMail, Comentario) VALUES (@nome,@email,@comentario)"

            Dim MyConn As New OleDbConnection(strConn)
            Dim cmd As New OleDbCommand(mysql, MyConn)
           'preenche os parâmetros com os dados obtidos do formulário
            cmd.Parameters.Add(New OleDbParameter("@nome", txtNome.Text))
            cmd.Parameters.Add(New OleDbParameter("@email", txtEmail.Text))
            cmd.Parameters.Add(New OleDbParameter("@comentario", txtComentario.Text))
            'abre a conexão e executa o comando
            Try
                MyConn.Open()
                cmd.ExecuteNonQuery()
                Response.Redirect("Visitas.aspx")
            Catch
                lblmsg.Text = "Erro ao gravar dados"
            Finally
                MyConn.Close()
            End Try

        End If

Neste código estou definindo uma instrução SQL INSERT INTO para incluir os dados do formulário na tabela Visitas;

"INSERT INTO Visitas (Nome, EMail, Comentario) VALUES (@nome,@email,@comentario)"

Estou usando 3 parâmetros (@nome, @email e @comentario) e em seguida executando a consulta pelo método ExecuteNonQuery() que não retorna registros e em seguida redirecionando para a página visitas.aspx para exibir o comentário;

Nota: Para saber mais leia os meus artigos :  Operações básicas com ASP.NET VB.NET - Operações com dados que não retornam registros

Executando o projeto e preenchendo o formulário para incluir um registro no livro, após clicar no botão Enviar Comentário veremos a página exibindo o comentário incluído;

É claro que muitas melhorias podem ser incluídas neste projeto :

Estas sugestões eu deixo a seu critério implementar, veja nas referências, links que lhe ajudarão a completar a tarefa.

Pegue o projeto completo aqui : Visitas.zip

Eu sei é apenas ASP .NET, mas eu gosto...


José Carlos Macoratti