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,
Hoje iremos aprender a utilizar mais alguns recursos do DataSet. Iremos criar um Livro de Visitas, mas conhecido como Guest Book, mas sem usar banco de dados para fazer a persistência dos dados. Iremos gravar tudo em XML.
Então, mão na massa!
Crie um novo projeto chamado GuestBook. Você pode fazê-lo tanto em C# como em VB.Net, eu optei por C#.
Teremos 2 arquivos para este projeto. Um chama-se AdicionarComentario.aspx e o outro chama-se VisualizarComentarios.aspx. Creio que não há necessidade de informar o que cada um vai fazer, o próprio nome do arquivo já diz a função.
Abra o arquivo VisualizarComentarios.aspx. A primeira coisa que deve acontecer é a criação do arquivo XML, caso ele não exista. Logo, teremos que fazer esta verificação e depois tratar os resultados. Vá para o editor de código e importe os seguintes Namespaces:
using System.Data;
using System.IO;
Ainda no editor de código, crie a rotina abaixo:
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.
///Cria um novo DataTable para gerar a tabela Comentarios
DataTable Comentarios=new DataTable("Comentarios");
///Cria o coluna Nome
Comentarios.Columns.Add("Nome");
///Cria a coluna Comentario
Comentarios.Columns.Add("Comentario");
///Adiciona a tabela Comentarios ao Dataset.
dsGuestBook.Tables.Add(Comentarios);
///Cria a primeira linha na tabela para que ela possa ser localizada
DataRow dr=Comentarios.NewRow();
dr["Nome"]="MyGuestBook";
dr["Comentario"]="Seja bem vindo, poste seu comentário";
///Adiciona a linha criada acima.
Comentarios.Rows.Add(dr);
///Grava as alterações novamente no arquivo Xml.
dsGuestBook.WriteXml("C:/GuestBook.xml");
}
}
Vale lembrar que ainda não inserimos nenhum objeto de interface na página, então a melhor hora de fazer isto é agora. Coloque um título na sua página, e insira um DataList e um Hiperlink:
Dê ao DataList o nome de dlComentarios e ao Hyperlink, mude a propriedade Text para “Adicionar Novo” e na propriedade NavigateURL digite “AdicionarComentario.aspx”.
Agora, selecione o DataList e clique em AutoFormat, escolha um modelo e clique em OK.
O próximo passo é criar os templates do DataList. Clique com o botão direito sobre o dlComentarios e vá em Edit Templates>Item Template.
Insira um label dentro da seção Item Template.
Ainda com o label selecionado, vá na caixa de propriedades, e na propriedade Text escreva <%# DataBinder.Eval(Container.DataItem, "Comentario") %>. Abaixo do label inserido, insira mais um label, selecione e altere a propriedade Text para <%# DataBinder.Eval(Container.DataItem, "Nome") %>. Aproveite a seleção para formatar a cor e o estilo da fonte deste label e do outro, seria legal deixá-los diferentes, veja:
Clique com o botão direito sobre o dlComentarios, vá em Edit Templates>Header and Footer Templates.
Arraste o HyperLink “Adicionar Novo” para dentro da seção Footer Template.
Conclua a edição do template clicando com o botão direito sobre o dlComentarios>End Template Editing. Deve ficar mais ou menos com esta aparência:
Chame a rotina IniciarGuestBook() no PageLoad:
private void Page_Load(object sender, System.EventArgs e)
{
if(!Page.IsPostBack)
{
IniciarGuestBook();
}
}
Na primeira execução, não irá aparecer nada, mas na segunda vez que você executar a página, irá aparecer o primeiro registro, este que adicionamos com o código.
Ok, no próximo tutorial, concluiremos o nosso Guest Book em XML
Espero que tenham gostado da novidade, e não deixem de acompanhar a publicação de mais tutorias no site.
Um abraço,
Lano de Castro