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:
|
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:
|
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 = * |
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 |
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 e 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