ASP.NET – Aplicação Web Básica – Mostrar, Adicionar, Editar e Apagar Dados – C#

Publicado: 3 de dezembro de 2014 em C#

Sabendo que a tecnologia Active Server Pages proporcionada pelo servidor de aplicação nos possibilita criar aplicações web dinâmicas utilizando .NET, vamos então criar um motor básico que utiliza o principio usado por quase todas as aplicações web para o mundo corporativo, ou seja manipulação de dados.

Em aplicações Enterprise os dados na grande maioria das vezes é manipulado através de um servidor de banco de dados relacional, entretanto neste primeiro exemplo vamos utilizar um objeto C# que possibilita a criação de listas para manipular os dados, ressaltando o que realmente nos interessa neste momento é apenas o esqueleto de uma simples aplicação que mostra, adiciona, edita e deleta dados através de uma interface com o usuário.

Criando uma Aplicação Web C#

1- Crie uma aplicação do tipo ASP.NET Web Application com o modelo C# Empty e chame seu projeto de DAWebApp, crie uma nova pagina WebForms chamada default. Crie também uma classe chamada Menssagem. Utilize o código abaixo para cada respectivo arquivo e compile a aplicação:

Default - Mostra grade de dados

Default – Mostra grade de dados

2 – Para adicionar dados utilizamos a pagina adados.aspx (add),  que contem os componentes de acordo com os arquivos abaixo:

adados.aspx - adiciona dados

adados.aspx – adiciona dados

3 – Para editar os dados utilizamos a pagina udados.aspx (update) que contem os componentes de acordo com os arquivos abaixo:

udados.aspx - editar dados

udados.aspx – editar dados

4 – Para remover os dados utilizamos a pagina ddados.aspx (delete) cujo código esta disponível também logo abaixo:

ddados - deleta dados

ddados – deleta dados

Exemplo:

Neste exemplo utilizamos o conceito básico de manipulação de objetos utilizando objetos de lista, que fazem parte do framework de coleções do C#.

Este modelo de aplicação utilizando lista armazena o objeto em uma sessão do servidor de aplicação, tente abrir um outro navegador como o Firefox por exemplo, enquanto roda sua aplicação no Internet Explorer, alimente dados na lista e você irá constatar que devido o uso da sessão cada navegador possui uma lista com dados distintos, já que cada um utiliza uma sessão diferente.

C#

Objeto – Menssagem.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace DaWebApp
{
    public class Menssagem
    {
        // Declara atributos
        private int id;
        private string nome;
        private string menssagem;

        // Construtor padrão
        public Menssagem() { }

        // Construtor Overload
        public Menssagem(int id, string nome, string menssagem)
        {
            // Inicializa valores;
            this.id = id;
            this.nome = nome;
            this.menssagem = menssagem;
        }

        // Propriedades
        public int Id
        {
            get
            {
                return id;
            }
            set
            {
                id = value;
            }
        }

        public string Nome
        {
            get
            {
                return nome;
            }

            set
            {
                nome = value;
            }
        }

        public string Msg
        {
            get
            {
                return menssagem;
            }
            set
            {
                menssagem = value;
            }
        }
    }
}

default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="default.aspx.cs" Inherits="DaWebApp._default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    </form>
</body>
</html>

default.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace DaWebApp
{
    public partial class _default : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            if (Session["registros"] == null)
            {
                // Cria lista para o objeto
                List<Menssagem> msg = new List<Menssagem>();

                // Adiciona dados ao objeto
                msg.Add(new Menssagem(1, "Ricardo", "Olá Pessoal"));
                msg.Add(new Menssagem(2, "Mantovani", "Bem-vindos ao Desenvolvimento Aberto," +
                                      " adicione, altere e exclua dados desta tabela"));

                // Adiciona objeto a sessão
                Session["registros"] = msg;
            }

            // Cria pagina no método HTTP GET
            if (Request.HttpMethod.Equals("GET"))
            {
                doGet();
            }
        }

        private void doGet()
        {
            // Cria estilo CSS
            Response.Write("<head>");
            Response.Write("<style>");
            Response.Write("td, th {");
            Response.Write("border: none;");
            Response.Write("background-color: #dddddd;");
            Response.Write("padding: 5px;");
            Response.Write("width: 200px; }");
            Response.Write("</style>");
            Response.Write("</head>");

            // Titulo da pagina
            Response.Write("<h1>Desenvolvimento Aberto - Listas </h1>");

            // Cria tabela
            Response.Write("<table>");
            Response.Write("<tr>");
            Response.Write("<th>ID:</th>");
            Response.Write("<th>Nome:</th>");
            Response.Write("<th>Comentário:</th>");
            Response.Write("<th>Ação:</th>");
            Response.Write("</tr>");

            // Recupera objeto da sessão
            List<Menssagem> registros = (List<Menssagem>)Session["registros"];

            // Itera objeto
            foreach (Menssagem reg in registros)
            {
                Response.Write("<tr>");
                Response.Write("<td>" + reg.Id + "</td>");
                Response.Write("<td>" + reg.Nome + "</td>");
                Response.Write("<td>" + reg.Msg + "</td>");

                // Link de edição
                Response.Write("<td><center>");
                Response.Write("<a href='udados.aspx?identificador=" + reg.Id + "'>Editar</a> | ");
                Response.Write("<a href='ddados.aspx?identificador=" + reg.Id + "'>Apagar</a>");
                Response.Write("</center></td>");
                Response.Write("</tr>");
            }

            Response.Write("</table>");

            // Define link para formulario de adicionar dados
            Response.Write("<P> <a href='adados.aspx'>Adicione um comentário</a> </p>");
        }
    }
}

adados.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="adados.aspx.cs" Inherits="DaWebApp.adados" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <h1>Desenvolvimento Aberto - Adiciona Menssagem</h1>
    <form id="form1" runat="server">
    <div>

        <asp:Label ID="Label2" runat="server" Text="Id:entificador  "></asp:Label>
        <br />
        <asp:TextBox ID="TextBox1" runat="server" Width="135px"></asp:TextBox>
        <br />

        <asp:Label ID="Label1" runat="server" Text="Nome:"></asp:Label>
        <br />
        <asp:TextBox ID="TextBox2" runat="server" Width="229px"></asp:TextBox>
        <br />
        <br />
        <asp:TextBox ID="TextBox3" runat="server" Height="118px" TextMode="MultiLine" Width="269px"></asp:TextBox>

        <br />
        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Adicionar" Width="274px" />

    </div>
    </form>
</body>
</html>

adados.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace DaWebApp
{
    public partial class adados : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {

        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            // recupera parametro
            string parametro = Request.QueryString["identificador"];

            // Recupera objeto da sessão
            List<Menssagem> registros = (List<Menssagem>)Session["registros"];

            // Adiciona registros
            registros.Add(new Menssagem(Convert.ToInt32(TextBox1.Text), TextBox2.Text, TextBox3.Text));
            Response.Redirect("default.aspx");
        }
    }
}

udados.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="udados.aspx.cs" Inherits="DaWebApp.udados" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <h1>Desenvolvimento Aberto - Altera Dados</h1>
    <form id="form1" runat="server">
    <div>
        <asp:Label ID="Label1" runat="server" Text="Identificador:"></asp:Label>
        <br />
        <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
        <br />
        Nome:<br />
        <asp:TextBox ID="TextBox2" runat="server" Width="194px"></asp:TextBox>
        <br />
        <br />
        <asp:Label ID="Label2" runat="server" Text="Menssagem:"></asp:Label>
        <br />
        <asp:TextBox ID="TextBox3" runat="server" Height="122px" TextMode="MultiLine" Width="209px"></asp:TextBox>

        <br />
        <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Alterar" Width="112px" />

    </div>
    </form>
</body>
</html>

udados.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace DaWebApp
{
    public partial class udados : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Verifica se a resposta não é um postback
            if (!IsPostBack)
            {
                // Recupera parametro
                string parametro = Request.QueryString["identificador"];

                // Alinha ID com indice da lista
                int id = Convert.ToInt32(parametro);
                id -= 1;

                // Recupera objeto da sessão
                List<Menssagem> registros = (List<Menssagem>)Session["registros"];

                // Exibe objeto
                if (Session["registros"] != null)
                {
                    TextBox1.Text = Convert.ToString(registros[id].Id);
                    TextBox2.Text = registros[id].Nome;
                    TextBox3.Text = registros[id].Msg;
                }
            }
        }

        protected void Button1_Click(object sender, EventArgs e)
        {
            // Recupera parametro
            string parametro = Request.QueryString["identificador"];

            // Alinha ID com o indice
            int id = Convert.ToInt32(parametro);
            id -= 1;

            // Recupera obeto da sessão
            List<Menssagem> registros = (List<Menssagem>)Session["registros"];

            // Altera propriedades da  lista
            registros[id].Id = Convert.ToInt32(TextBox1.Text);
            registros[id].Nome = TextBox2.Text;
            registros[id].Msg = TextBox3.Text;

            // Redireciona pagina
            Response.Redirect("default.aspx");

        }
    }
}

ddados.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="ddados.aspx.cs" Inherits="DaWebApp.ddados" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>

    </div>
    </form>
</body>
</html>

ddados.aspx.cs

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

namespace DaWebApp
{
    public partial class ddados : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            // Recupera parametro
            string parametro = Request.QueryString["identificador"];

            // Alinha ID com indice da lista
            int id = Convert.ToInt32(parametro);
            id -= 1;

            // Recupera objeto da sessão
            List<Menssagem> registros = (List<Menssagem>)Session["registros"];

            // Remove registro da lista
            registros.RemoveAt(id);

            // Alinha indice com ID
            id += 1;

            // Define Menssagem ao usuario
            Response.Write("<h1>Desenvolvimento Aberto</h1>");
            Response.Write("Registro: ID:" + id + " removido com sucesso <br>");
            Response.Write("<a href='default.aspx'>Voltar</a>");

        }
    }
}
Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s