miércoles, 8 de abril de 2020

CRUD Agenda en C#


Base de datos:

CREATE DATABASE bdagenda

use bdagenda
Creamos las siguientes tablas

create table tblusuarios(
idusr int identity(1,1) primary key,
usuario varchar(100),
contra varchar(100)
)


Creamos los procedimientos almacenados para gestionar cada tabla.
--Procedimiento para guardar
create procedure spguardaralumno(@Nombre varchar(60),@Apaterno varchar(80),@Amaterno varchar (80))
as
insert into tblalumno (Nombre,Apaterno,Amaterno)
values(@Nombre,@Apaterno,@Amaterno)

--Procedimiento para modificar
create procedure spmodificarusuario @idusuario int,@Nombre varchar(60),@Apaterno varchar(80),@Amaterno varchar(80)
as
update tblalumno set Nombre=@Nombre, Apaterno=@Apaterno,Amaterno=@Amaterno where idalumno=@idusuario
--Procedimiento para eliminar
create procedure speliminaralumno @idusuario int
as
delete from tblalumno where idalumno=@idusuario
--Procedimiento para consultar
create procedure spconsultar_por_id @idusuario int
as
select * from tblalumno where idalumno=@idusuario


OK Ahora viene lo bueno Crear Un sitio web para usar los procedimientos almacenados.

Abrimos Visual Studio.
Damos click en  Archivo -> Nuevo -> Sitio web
Seleccionamos Sitio web Asp

Vamos a crear los constructores.
Damos click derecho sobre nuestro proyecto y elegimos agregar nuevo elemento
Seleccionamos Clase y le damos el siguiente Nombre: Classcontacto

Nos quedara algo asi:
Vamos a declarar nuestras variables con sus respectivos constructores.
---------------------------------------------------------------------------------------------

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

/// <summary>
/// Descripción breve de Classcontacto
/// </summary>
public class Classcontacto
{

 public string  _Nombre, _Apaterno, _Amaterno;
         public int _idusuario;


         public int idusuario
         {
             get
             {
                 return this._idusuario;
             }
             set
             {
                 this._idusuario = value;
             }
         }
 
    public string Nombre
    {
        get
        {
            return this._Nombre;
        }
        set
        {
            this._Nombre = value;
        }
    }

    public string Apaterno
    {
        get
        {
            return this._Apaterno;
        }
        set
        {
            this._Apaterno = value;
        }
    }

    public string Amaterno
    {
        get
        {
            return this._Amaterno;
        }
        set
        {
            this._Amaterno = value;
        }
    }

}

---------------------------------------------------------------------------
Ahora vamos a crear otra Clase para guardar los métodos que se van a comunicar con los procedimientos almacenados. esta se va a llamar  Classagenda
----------------------------------------------------------------------------
using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

    public class Classagenda
    {
       // Classconexion cn = new Classconexion();
        public static string Cadena = @"data source=CHARLY-PC\SQLEXPRESS;initial catalog =bdagenda;integrated security =true;";
        public static SqlConnection cn = new SqlConnection(Cadena);

        private Classcontacto c = new Classcontacto();

        public void guardaralumno(Classcontacto c)
        {
            SqlCommand cmd = new SqlCommand("spguardaralumno", cn);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@Nombre", c.Nombre);
            cmd.Parameters.AddWithValue("@Apaterno", c.Apaterno);
            cmd.Parameters.AddWithValue("@Amaterno", c.Amaterno);
            try
            {
                cn.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;

            }
            finally
            {
                cn.Close();
            }
        }



        public void eliminaralumno(Classcontacto c)
        {
            SqlCommand cmd = new SqlCommand("speliminaralumno", cn);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@idusuario", c.idusuario);
            try
            {
                cn.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;

            }
            finally
            {
                cn.Close();
            }
        }

        public void modificaralumno(Classcontacto c)
        {
            SqlCommand cmd = new SqlCommand("spmodificarusuario", cn);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@idusuario", c.idusuario);
            cmd.Parameters.AddWithValue("@Nombre", c.Nombre);
            cmd.Parameters.AddWithValue("@Apaterno", c.Apaterno);
            cmd.Parameters.AddWithValue("@Amaterno", c.Amaterno);
            try
            {
                cn.Open();
                cmd.ExecuteNonQuery();
            }
            catch (Exception ex)
            {
                throw ex;

            }
            finally
            {
                   cn.Close();
            }
        }

        public DataTable listadodealumnos()
        {
            string sql = "Select * from tblalumno";
            SqlCommand cmd = new SqlCommand(sql, cn);
            DataTable dt = new DataTable();
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            try
            {
                cn.Open();
                da.Fill(dt);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                cn.Close();
            }
            return dt;
        }




        public Classcontacto buscaralumno_por_id(int idusuario)
        {
            SqlCommand cmd = new SqlCommand("spconsultar_por_id", cn);
            cmd.CommandType = System.Data.CommandType.StoredProcedure;
            cmd.Parameters.AddWithValue("@idusuario", idusuario);
            SqlDataAdapter da = new SqlDataAdapter(cmd);
            System.Data.DataSet ds = new System.Data.DataSet();
            Classcontacto c = new Classcontacto();
            try
            {
                cn.Open();
                da.Fill(ds, "clave");
                c.idusuario  = Convert.ToInt32(ds.Tables["clave"].Rows[0]["idalumno"]);
                c.Nombre = Convert.ToString(ds.Tables["clave"].Rows[0]["Nombre"]);
                c.Apaterno = Convert.ToString(ds.Tables["clave"].Rows[0]["Apaterno"]);
                c.Amaterno = Convert.ToString(ds.Tables["clave"].Rows[0]["Amaterno"]);

            }
            catch (Exception ex)
            {
                throw ex;
            }
             
            finally
            {
                cn.Close();
            }

            return c;
        }


    }

-----------------------------------------------------------------------------------------------------

Ahora vamos a crear nuestro formulario
-----------------------------------------------------------------------------------------------------
Damos click en el boton Guardar
y escribimos lo siguiente:

       Classcontacto c = new Classcontacto();
        c.Nombre = this.txtnombre.Text;
        c.Apaterno = this.txtapaterno.Text;
        c.Amaterno = this.txtamaterno.Text;
        try{
            Classagenda ag= new Classagenda();
            ag.guardaralumno(c);
            this.Label5.Text = "Se guardo con exito";
        }
        catch (Exception ex)
        {
            Console.WriteLine("Exception Message: " + ex.Message);
        }

--------------------------------------------------------------------------------------------
Damos click en el boton Eliminar y escribimos lo siguiente

 Classcontacto c = new Classcontacto();
        c.Nombre = this.txtidusuario.Text;
        try{
            Classagenda ag= new Classagenda();
            ag.eliminaralumno(c);
            this.Label5.Text = "Se elimino con exito";
        }
        catch (Exception ex)
        {
            Console.WriteLine("Exception Message: " + ex.Message);
        }

---------------------------------------------------------------------------------------
Damos click en el boton consultar y escribimos lo siguiente
---------------------------------------------------------------------------------------
Classagenda ag = new Classagenda();
        
        this.GridView1.DataSource = ag.listadodealumnos();
        this.GridView1.DataBind();



-------------------------------------------------------------------------------------
Damos click en el boton Modificar y escribimos lo siguiente
-----------------------------------------------------------------------------------
 Classcontacto c = new Classcontacto();
        c.idusuario = Convert.ToInt32(this.txtidusuario.Text);
        c.Nombre = this.txtnombre.Text;
        c.Apaterno = this.txtapaterno.Text;
        c.Amaterno = this.txtamaterno.Text;
        try
        {
            Classagenda ag = new Classagenda();
            ag.modificaralumno(c);
            this.Label5.Text = "Se modifico con exito";
        }
        catch (Exception ex)
        {
            Console.WriteLine("Exception Message: " + ex.Message);
        }
---------------------------------------------------------------------------------------
Damos click en el boton Consultar por id y escribimos lo siguiente
---------------------------------------------------------------------------------------
Classcontacto c = new Classcontacto();
        c.idusuario = Convert.ToInt32(this.txtidusuario.Text);
        
        try
        {
            Classagenda ag = new Classagenda();
            c = ag.buscaralumno_por_id(c.idusuario);

            this.txtidusuario.Text = Convert.ToString(c.idusuario);
            this.txtnombre.Text = Convert.ToString(c._Nombre);
            this.txtapaterno.Text = Convert.ToString(c._Apaterno);
            this.txtamaterno.Text = Convert.ToString(c.Amaterno);


            this.Label5.Text = "Se consulto con exito";
        }
        catch (Exception ex)
        {
            Console.WriteLine("Exception Message: " + ex.Message);
        }

y listo compilamos y probamos.

No hay comentarios:

Publicar un comentario