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
Olá Pessoal,
Dando continuidade ao nosso projeto Guest Book com XML, vamos implementar o código que lista os comentários já postados.
Havíamos criado uma rotina que verifica se o arquivo GuestBook.xml já existe, e neste mesmo trecho de código é que vamos fazer a listagem dos comentários. O código completo da rotina IniciarGuestBook() ficará assim:
private void IniciarGuestBook()
{
///Cria o dataset que armazenará o GuestBook
DataSet dsGuestBook=new DataSet();
///Utiliza o objeto File para verificar a existencia do arquivo.
if(File.Exists("C:/GuestBook.xml"))
{
///Caso o arquivo exista, solicita a leitura
dsGuestBook.ReadXml("C:/GuestBook.xml");
dlComentarios.DataSource=dsGuestBook.Tables["Comentarios"].DefaultView;
dlComentarios.DataBind();
}
else
{
///Caso não exista, solicita a criação.
dsGuestBook.WriteXml("C:/GuestBook.xml");
}
}
Como não há nenhum registro, o DataList não irá renderizar os comentários. Então, vamos já criar a página que irá adicionar um novo comentário.
Abra o arquivo AdicionarComentario.aspx e crie uma interface parecida com esta:
Os WebControls adicionados acima estão identificados da seguinte forma:
TextBox – txtNome – Informará o nome de quem está postando.
TextBox – txtComentarios – Local onde deverá se escrever o comentário.
Button – btnSalvar – Botão que executará o código de gravação do comentário.
Agora vamos ao código. Lembrando que você deve novamente importar o namespace System.Data
private void NovoComentario()
{
///Cria um novo Dataset
DataSet dsGuestBook=new DataSet();
///Carrega o DataSet existente através do Xml
dsGuestBook.ReadXml("C:/Guestbook.xml");
///Cria uma nova linha
DataRow dr=dsGuestBook.Tables["Comentarios"].NewRow();
///Indica os valores de cada coluna
dr["Nome"]=txtNome.Text;
dr["Comentario"]=txtComentario.Text;
///Adiciona a linha criada.
dsGuestBook.Tables["Comentarios"].Rows.Add(dr);
///Grava as alterações no arquivo xml.
dsGuestBook.WriteXml("C:/GuestBook.xml");
}
Veja que não precisamos de muito esforço em código para abrir, adicionar um novo registro, e gravar as modificações no arquivo xml. Isto tudo é possível porque o objeto DataSet nos traz um conjunto de métodos para manipular este arquivo.
Para chamar esta rotina, clique duas vezes no btnGravar, e no evento clique adicione o seguinte código:
private void btnGravar_Click(object sender, System.EventArgs e)
{
///Chama a rotina que adiciona o comentário
NovoComentario();
///Redireciona para a página que visualiza os comentários
Response.Redirect("VisualizarComentarios.aspx");
}
}
Agora vamos testar:
Executando a página pela primeira vez:
Vejam que nada apareceu, mas o DataSet com a tabela Comentários foram criados.
Executando pela segunda vez:
Notem que agora o DataList renderizou o que criamos.
Agora, clique em AdicionarNovo:
Escreva algum comentário e clique em Gravar o comentário.
O comentário foi gravado!
Vejam que funcionou perfeitamente, e você tem toda a liberdade de melhorar esta aplicação.
Esta é uma boa opção de trabalhar com persistência de dados sem precisar usar banco de dados relacional.
Tenho postado aqui, tutoriais voltados para aplicações práticas em ASP.Net. Caso tenham sugestões do que podemos desenvolver juntos, envie para lanodecastro@hotmail.com, será sempre um prazer em acatá-las!
Abraços,
Lano de Castro