Ok creamos la 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 la Clase de conexion se va a llamar Classconexion
Click derecho en el proyecto ->Agregar-> nuevo elemento -> elige Clase
--------------------------------La clase llevara algo como esto------------------------------------------------
----------------------------Vamos a poner la cadena de conexion sqlserver--------------------------------
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 Classconexion
/// </summary>
static class Classconexion
{
public static string con()
{
string Conexion;
Conexion = @"data source=CHARLY-PC\SQLEXPRESS;initial catalog =bdagenda;integrated security =true;";
return Conexion;
}
}
--------------------------------------------------------------------------------------------------------------------------
Ahora vamos a Crear la clase de los constructores de nuestras variables se va a llamar Classcontacto
Agregamos otra Clase y escribimos lo siguiente:
--------------------------------------------------------------------------------------------------------------------------
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;
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, la cual va a contener nuestros metodos se va a llamar Classagenda.
Va a contener lo siguiente:
---------------------------------------------------------------------------------------------------------------------
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
{
public static string Cadena = Classconexion.con();
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;
}
public System.Data.DataTable buscarpersona()
{
SqlCommand cmd = new SqlCommand("SELECT usuario,contra FROM tblusuarios", cn);
SqlDataAdapter da = new SqlDataAdapter(cmd);
System.Data.DataSet ds = new System.Data.DataSet();
Classcontacto c = new Classcontacto();
try
{
cn.Open();
da.Fill(ds, "persona");
return ds.Tables["persona"];
cn.Close();
}
catch (Exception ex)
{
throw ex;
}
finally
{
cn.Close();
}
}
}
-----------------------------------------------------------------------------------------------------------------------
Ahora vamos a crear otra clase para Autenticarnos se va a llamar Autentificacion
y va a contener lo siguiente:
-----------------------------------------------------------------------------------------------------------------------
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 Autentificacion
{
public static string Cadena = Classconexion.con();
public static SqlConnection cn = new SqlConnection(Cadena);
public static bool Autenticar(string usuario, string password)
{
//consulta a la base de datos
string sql = @"SELECT COUNT(*)
FROM tblusuarios
WHERE usuario = @user AND contra = @pass";
//cadena conexion
// using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["default"].ToString()))
{
cn.Open();//abrimos conexion
SqlCommand cmd = new SqlCommand(sql, cn); //ejecutamos la instruccion
cmd.Parameters.AddWithValue("@user", usuario); //enviamos los parametros
cmd.Parameters.AddWithValue("@pass", password);
int count = Convert.ToInt32(cmd.ExecuteScalar()); //devuelve la fila afectada
cn.Close();
if (count == 0)
return false;
else
return true;
}
}
}
------------------------------------------------------------------------------------------------------------
Vamos a crear el formulario y agregar un Reporte
Primero vamos a dar click derecho en el proyecto y vamos a Agregar Nuevo elemento y elegimos Crystal Report. Como nombre va a llevar Reporte1
1.-Damos click en usar Asistente de Informes y Aceptar
-----------------------------------------------------------------------------------------------------------
Damos doble click sobre el login y escribimos lo siguiente
No olvidemos agregar using System.Web.Security;
Hacemos uso de la clase
Autentificacion antes creada y le pasamos las claves
Autentificacion.Autenticar(Login1.UserName, Login1.Password)
------------------------------------------------------------------------------------------------
using System;
using System.Collections;
using System.Configuration;
using System.Data;
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.Web.Security;
public partial class Login : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
}
protected void Login1_Authenticate(object sender, AuthenticateEventArgs e)
{
if (Autentificacion.Autenticar(Login1.UserName, Login1.Password))
{
FormsAuthentication.RedirectFromLoginPage(Login1.UserName, Login1.RememberMeSet);
}
}
}
---------------------------------------------------------------------------------------------
Ahora vamos a el formulario Default.asp
Debe quedar como lo siguiente
--------------------------------------------------------------------------------------------------------------
using System;
using System.Configuration;
using System.Data;
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 CrystalDecisions.Shared;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Web;
using CrystalDecisions.CrystalReports;
using CrystalDecisions.ReportSource;
using System.Web.Security;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
//si se autentica mostramos mensaje y nombre de usuario
if (HttpContext.Current.User.Identity.IsAuthenticated)
{
Response.Write("Bienvenido : " + User.Identity.Name);
}
if (IsPostBack)
{
Label6.Text = DropDownList1.SelectedItem.ToString();
Label7.Text = DropDownList1.SelectedValue.ToString();
}
Classagenda ag= new Classagenda();
System.Data.DataTable dt;
dt = ag.buscarpersona();
this.DropDownList1.DataSource = dt;
this.DropDownList1.DataValueField = "contra";
this.DropDownList1.DataTextField = "usuario";
this.DropDownList1.DataBind();
}
protected void Button1_Click(object sender, EventArgs e)
{
Reporte1 rp = new Reporte1();
rp.SetParameterValue("@idusuario", Convert.ToInt16(this.txtidusuario.Text));
CrystalReportViewer1.ReportSource = rp;
}
protected void btnguardar_Click(object sender, EventArgs e)
{
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);
}
}
protected void btneliminar_Click(object sender, EventArgs e)
{
Classcontacto c = new Classcontacto();
c.idusuario = Convert.ToInt16(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);
}
}
protected void btnconsultar_Click(object sender, EventArgs e)
{
Classagenda ag = new Classagenda();
this.GridView1.DataSource = ag.listadodealumnos();
this.GridView1.DataBind();
}
protected void btnmodificar_Click(object sender, EventArgs e)
{
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);
}
}
protected void btnconsultarporid_Click(object sender, EventArgs e)
{
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);
}
}
protected void btncerrar_Click1(object sender, EventArgs e)
{
//se borra la cookie de autenticacion
FormsAuthentication.SignOut();
//se redirecciona al usuario a la pagina de login
Response.Redirect(Request.UrlReferrer.ToString());
}
protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
}
}
-----------------------------------------------------------------------------------------------------------
Por ultimo compilamos y probamos.















No hay comentarios:
Publicar un comentario