sábado, 8 de junio de 2019

CRUD MVC 5 .NET (1 PARTE)

En esta ocasión veremos la manera de como hacer un CRUD(Crear,Leer,Actualizar y Borrrar) usando Entity Framework(Database First) en un proyecto de Asp.net MVC. 
Para no alargarme mucho dividiré este ejemplo en 2  artículos.

En este primer articulo estaremos creando la base de datos que usaremos, crearemos nuestro modelo EF a partir de la bd y estaremos mostrando en nuestro aplicación los datos de la bd(en la siguiente parte aremos el create update y delete).



Bueno lo primero que aremos sera crear la BD para este ejemplo creare una base de datos llamada PERSONA que tendrá nada mas una tabla Persona.


  
--1. Crear Base de Datos
CREATE DATABASE Persona
USE Persona
go

--2. Crear Tabla
--CREATE TABLE Persona
--(
-- Id int primary key identity(1,1),
-- Nombre varchar(50),
-- Apellido varchar(50),
-- Edad int
--)

--3. Insertar Registro
--insert into Persona values('Juan','Perez',50)

Nuevo Proyecto

Ahora creemos un proyecto en ASP.NET  MVC VS(en mi caso uso el 2017) le llamaremos CrudPersonaMVC

Nuevo Proyecto

Ahora crearemos nuestro modelo EF a partir de la bd que ya tenemos creada(en la carpeta Models agreguemos un nuevo elemento Entity Data Model)

Modelo Entity

Creamos una nueva cadena de Conexión(Ponen el nombre de su servidor, tipo de autenticacion, y el nombre de la base de datos)

Conexion

Seleccionamos las tablas incluiremos en nuestro modelo(en nuestro caso solo es una tabla)

Tabla Persona

Se nos creara nuestro modelo con nuestra tabla

Modelo

Bueno empecemos a programar dentro de nuestra carpeta Models crearemos una nueva carpeta llamada ViewModels y dentro de esta carpeta crearemos una clase llamada ListarPersonas(esta clase nos servirá para poder mostrar nuestros registros en nuestra vista)

Modelo
  
    public class ListarPersonas
    {
        public int Id { get; set; }
        public string Nombre { get; set; }
        public string Apellido { get; set; }
        public int? Edad { get; set; }
    }

Dentro de esta clase crearemos una propiedad por cada campo de la tabla que queramos mostrar(en nuestro caso mostraremos todos los campos) importante que cada propiedad sea del mismo tipo del campo de nuestra tabla.

Ahora agregaremos un Controlador llamado PersonaController

Controlador Persona

Agregaremos el siguiente código
  
    public class PersonaController : Controller
    {
        // GET: Persona
        public ActionResult Index()
        {
            //creamos una lista de nuestra clase ListarPersona
            List list;
            using (PersonaEntities bd = new PersonaEntities())
            {
               //hacemos un select a nuestra tabla con los campos que queremos mostrar
                list = (from b in bd.Persona
                        select new ListarPersonas
                        {
                            Id = b.Id,
                            Nombre = b.Nombre,
                            Apellido = b.Apellido,
                            Edad = b.Edad,
                        }).ToList();
            }
                return View(list);
      

Lo que hacemos en nuestro ActionResult con LINQ hacemos un select a nuestra tabla Persona haciendo uso de la clase ListarPersona que creamos anteriormente para retornar en nuestra vista una lista con los registros de nuestra tabla. Ahora para mostrar los registro crearemos una vista de nuestro controlador, así que damos click derecho y agregaremos nuestra vista Index

Controlador Persona
Y en nuestra vista tendremos nuestro siguiente código
  
@{
    ViewBag.Title = "Index";
}

<center><h2>Datos Personas</h2></center>
<!-- Boton Nuevo  -->
<div class=" row" style="text-align:right; padding:5px">
    <div class="col-md-12">
        <input type="button" class="btn btn-primary" value="Nuevo" />
    </div>
 </div>
    <!-- Creo tabla  -->
    <div class="row">
        <div class="col-md-12">

            <table class="table">
                <thead class="thead-dark">
                    <tr>
                        <th>ID</th>
                        <th>NOMBRE</th>
                        <th>APELLIDO</th>
                        <th>EDAD</th>
                        <th>Editar/Eliminar</th>
                    </tr>
                </thead>
                <!-- Recorro el modelo para imprimir datos -->
                @foreach (var elemento in Model)
                {
                    <tr>
                        <td>@elemento.Id</td>
                        <td>@elemento.Nombre</td>
                        <td>@elemento.Apellido</td>
                        <td>@elemento.Edad</td>

                        <td>
                            <!-- Botones Editar Eliminar  -->
                            <input type="button" value="Editar" class="btn btn-default" />
                            <input type="button" class="btn btn-danger" value="Eliminar" />
                        </td>
                    </tr>
                }
            </table>
        </div>
    </div>


Lo que hacemos acá es crear una tabla(usamos un poco de Boostrap para darle un mejor diseño) y luego recorremos nuestro modelo con un foreach para imprimir nuestros datos en cada campo de nuestro tabla(esto lo hacemos con razor), también hemos agregado los botones de Nuevo, Editar y Eliminar que en nuestro siguiente articulo veremos como programarlos.

Controlador Persona
Como ven en nuestra vista ya estamos mostrando los registros de nuestra bd. En el siguiente articulo veremos como agregar,editar y eliminar registros...

 Saludos desde El Salvador...

Descargar Proyecto C#

Nota:Si descargan el proyecto deben crear la bd y cambiar la cadena de conexión con los datos de su servidor de bd.

 Si necesitan una pagina web para su empresa, una aplicación web o de escritorio estamos a la orden...

Si quieren donarme para una soda lo pueden hacer aqui.


0 comentarios:

Publicar un comentario

Nota: solo los miembros de este blog pueden publicar comentarios.