Sunteți pe pagina 1din 16

MANTENEDOR REGISTRO DE CLIENTE

CREACIÓN BASE DE DATOS

Ingresar al SQL luego hacer clic derecho en base de datos y seleccione nueva base de datos.

Aparece la ventana en la cual debe ingresar un nombre para la base de datos


BDINGSOFTWAREG1

Mg. Ing. Robert Sánchez Ticona 1


Luego nos vamos al SQL clic derecho en la base de datos seleccionamos Nueva Tabla

Aparece la ventana en la cual definimos los campos y tipo de datos de la tabla y guardamos
como Cliente.

Luego crearemos los procedimientos almacenados:

create procedure [dbo].[pa_cliente_listarTodos]


as
select
codcliente,apellidos,nombres,direccion,correo,fecha_nacimiento,dni
from Cliente where estado='1'

create procedure [dbo].[pa_cliente_agregar]


@codcliente char(4),
@apellidos varchar(40),
@nombres varchar(40),
@direccion varchar(40),
@correo varchar(40),
@fecha_nacimiento smalldatetime,
@dni varchar(8)
as
insert into cliente
(codcliente,apellidos,nombres,direccion,correo,fecha_nacimiento,dni,es
tado)
values
(@codcliente,@apellidos,@nombres,@direccion,@correo,@fecha_nacimiento,
@dni,'1')

create procedure [dbo].[pa_cliente_editar]


@codcliente char(4),
@apellidos varchar(40),
@nombres varchar(40),
@direccion varchar(40),
@correo varchar(40),
@fecha_nacimiento smalldatetime,
@dni varchar(8)
as
update cliente
set apellidos=@apellidos,
nombres=@nombres,

Mg. Ing. Robert Sánchez Ticona 2


direccion=@direccion,
correo=@correo,
fecha_nacimiento=@fecha_nacimiento,
dni=@dni
where codcliente=@codcliente and estado='1'

create procedure [dbo].[pa_cliente_eliminar]


@codcliente char(4)
as
update Cliente
set estado='0'
where codcliente=@codcliente and estado='1'

create procedure [dbo].[pa_cliente_buscar_x_codigo]


@codcliente char(4)
as
select
codcliente,apellidos,nombres,direccion,correo,fecha_nacimiento,dni
from Cliente where estado='1' and codcliente =@codcliente

Aparece la ventana de código en la cual escribiremos lo siguiente:

public class Cliente


{
public string codcliente { get; set; }
public String apellidos { get; set; }
public String nombres { get; set; }
public String direccion { get; set; }
public String telefono { get; set; }
public String correo { get; set; }
public DateTime fechanacimiento { get; set; }
public String dni { get; set; }
public String estado { get; set; }
}

CAPA DATOS
class Conexion
{
private static readonly Conexion _instancia = new Conexion();
public static Conexion Instancia
{
get
{
return _instancia;
}
}
public string cadenaconexion()
{
return "Data Source=localhost;Initial Catalog=BDArquitectura;User
ID=sa;Password=123456";
}
}

Mg. Ing. Robert Sánchez Ticona 3


Crear la clase ClienteDA y codificamos.

public class ClienteDA


{
private static readonly ClienteDA _instancia = new ClienteDA();
public static ClienteDA Instancia
{
get
{
return _instancia;
}
}
public DataSet ListarTodos()
{
try
{
SqlConnection cn = new
SqlConnection(Conexion.Instancia.cadenaconexion());
cn.Open();
SqlCommand sqlcmd = new SqlCommand("pa_clientes_Todos", cn);
sqlcmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(sqlcmd);
DataSet ds = new DataSet();
da.Fill(ds, "clientes");
cn.Close();
cn.Dispose();
return ds;
}
catch (Exception ex)
{
throw new Exception("El error se produjo en Obtener
Clientes"+ex);
}
}

public Boolean Agregar(Cliente oCliente)


{
try
{
SqlConnection cn = new
SqlConnection(Conexion.Instancia.cadenaconexion());
cn.Open();
SqlCommand sqlcmd = new SqlCommand("pa_clientes_agregar", cn);
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.Parameters.Add("@codigo", SqlDbType.Char, 4).Value =
oCliente.codcliente;
sqlcmd.Parameters.Add("@apellidos", SqlDbType.VarChar, 40).Value
= oCliente.apellidos;
sqlcmd.Parameters.Add("@nombres", SqlDbType.VarChar, 40).Value
=oCliente.nombres;
sqlcmd.Parameters.Add("@direccion", SqlDbType.VarChar, 40).Value
= oCliente.direccion;
sqlcmd.Parameters.Add("@correo", SqlDbType.Char, 40).Value =
oCliente.correo;
sqlcmd.Parameters.Add("@fecha_nacimiento", SqlDbType.Date).Value
= oCliente.fechanacimiento;
sqlcmd.Parameters.Add("@telefono", SqlDbType.VarChar, 8).Value =
oCliente.telefono;
sqlcmd.Parameters.Add("@dni", SqlDbType.VarChar, 8).Value =
oCliente.dni;

sqlcmd.ExecuteNonQuery();

Mg. Ing. Robert Sánchez Ticona 4


cn.Close();
cn.Dispose();
return true;
}
catch (Exception ex)
{
throw new Exception("El error se produjo en registrar nuevo
Cliente"+ex);
}
}
public Boolean Editar(Cliente Cliente)
{
try
{
SqlConnection cn = new
SqlConnection(Conexion.Instancia.cadenaconexion());
cn.Open();
SqlCommand sqlcmd = new SqlCommand("pa_cliente_editar", cn);
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.Parameters.Add("@codcliente", SqlDbType.Char, 4).Value =
Cliente.codcliente;
sqlcmd.Parameters.Add("@apellidos", SqlDbType.VarChar, 40).Value =
Cliente.apellidos;
sqlcmd.Parameters.Add("@nombres", SqlDbType.VarChar, 40).Value =
Cliente.nombres;
sqlcmd.Parameters.Add("@direccion", SqlDbType.VarChar, 40).Value =
Cliente.direccion;
sqlcmd.Parameters.Add("@correo", SqlDbType.Char, 40).Value =
Cliente.correo;
sqlcmd.Parameters.Add("@fecha_nacimiento", SqlDbType.Date).Value =
Cliente.fechanacimiento;
sqlcmd.Parameters.Add("@dni", SqlDbType.VarChar, 8).Value =
Cliente.dni;
sqlcmd.ExecuteNonQuery();
cn.Close();
cn.Dispose();
return true;
}
catch (Exception ex)
{
throw new Exception("El error se produjo al actualizar Cliente" +
ex);
}
}
public Boolean Eliminar(string codcliente)
{
try
{
SqlConnection cn = new
SqlConnection(Conexion.Instancia.cadenaconexion());
cn.Open();
SqlCommand sqlcmd = new SqlCommand("pa_clientes_eliminar", cn);
sqlcmd.CommandType = CommandType.StoredProcedure;
sqlcmd.Parameters.Add("@codigo", SqlDbType.Char, 4).Value =
codcliente;
sqlcmd.ExecuteNonQuery();
cn.Close();
cn.Dispose();
return true;
}
catch (Exception ex)
{

Mg. Ing. Robert Sánchez Ticona 5


throw new Exception("El error se produjo al actualizar Cliente" +
ex);
}
}
public DataSet BuscarporCodigo(string codcliente)
{
try
{
SqlConnection cn = new
SqlConnection(Conexion.Instancia.cadenaconexion());
cn.Open();
SqlCommand sqlcmd = new SqlCommand("pa_clientes_BuscarporCodigo",
cn);
sqlcmd.CommandType = CommandType.StoredProcedure;
SqlDataAdapter da = new SqlDataAdapter(sqlcmd);
da.SelectCommand.Parameters.Add("@codigo", SqlDbType.Char,
4).Value = codcliente;
DataSet ds = new DataSet();
da.Fill(ds, "clientes");
cn.Close();
cn.Dispose();
return ds;
}
catch (Exception ex)
{
throw new Exception("El error se produjo en Obtener Clientes" +
ex);
}
}
}

Luego creamos la clase ClienteCN.

public class ClienteCN


{
private static readonly ClienteCN _instancia = new ClienteCN();
public static ClienteCN Instancia
{
get
{
return _instancia;
}
}

public DataSet ListarTodos()


{
return ClienteDA.Instancia.ListarTodos();
}
public Boolean Agregar(Cliente Cliente)
{
return ClienteDA.Instancia.Agregar(Cliente);
}
public Boolean Editar(Cliente Cliente)
{
return ClienteDA.Instancia.Editar(Cliente);
}
public DataSet BuscarporCodigo(string codcliente)
{

Mg. Ing. Robert Sánchez Ticona 6


return ClienteDA.Instancia.BuscarporCodigo(codcliente);
}
public Boolean Eliminar(string codcliente)
{
return ClienteDA.Instancia.Eliminar(codcliente);
}
}

Creamos página WebClientes aparece el diseñador de la página en la cual insertaremos una


tabla de 4 filas y 3 columna para ordenar nuestros controles a utilizar.

Insertaremos un control GridView en la página diseñada y le pondremos nombre en


propiedades ID GrdCliente

Una vez insertado le podemos dar formato al GridView haciendo clic en el cuadrado con una
fecha al costado seleccionamos formato automático y cambiamos la apariencia del control.

Mg. Ing. Robert Sánchez Ticona 7


Luego en la opción del cuadro con flecha seleccionar editar columna y desmarcar la casilla
generar campos automáticamente.

Luego haremos seleccionamos BoundField y clic en el botón agregar y cambiaremos en la


propiedad HeaderText y DataField según los campos que queremos mostrar al visualizar la
página como por ejemplo para código de cliente será la propiedad HeaderText igual a Código y
la propiedad DataField como codcliente (campo de la base de datos).

Mg. Ing. Robert Sánchez Ticona 8


Una vez diseñado el WebForm agregaremos el botón nuevo.

Agregaremos los botones modificar y Eliminar entonces iremos al botón que aparece en la
parte superior del Gridview Editar columnas y agregamos un TemplateField en la propiedad
text escribimos Opciones.

Mg. Ing. Robert Sánchez Ticona 9


Agregaremos los botones modificar y Eliminar entonces iremos al botón que aparece en la
parte superior del Gridview Editar Plantilla y luego agregamos dos botones de comando el
Editar y Eliminar.

Luego clic en terminar edición y nuestro WebForm mostrara lo siguiente.

Mg. Ing. Robert Sánchez Ticona 10


Cambiar las propiedades del botón Editar CommandName Editar, Text Editar y
CommandArgument Eval(“codcliente”). Para el botón Eliminar CommandName Eliminar, Text
Eliminar y CommandArgument Eval(“codcliente”).

En el WebClientes codificar:

protected void Page_Load(object sender, EventArgs e)


{
if (!IsPostBack)
mostrar();
}
void mostrar()
{
GrdClientes.DataSource = ClienteCN.Instancia.ListarTodos();
GrdClientes.DataBind();
}

Mg. Ing. Robert Sánchez Ticona 11


protected void BtnNuevo_Click(object sender, EventArgs e)
{
Session["vmodoedicion"] = "nuevo" ;
Response.Redirect("WebMantenedorCliente");
}

protected void GrdClientes_RowCommand(object sender,


GridViewCommandEventArgs e)
{
String codcliente;
if (e.CommandName == "Editar")
{
codcliente = e.CommandArgument.ToString();
Session["vmodoedicion"] = "edicion";
Response.Redirect("WebMantenedorCliente.aspx?codigo=" + codcliente + "");
}
if (e.CommandName == "Eliminar")
{
codcliente = e.CommandArgument.ToString();
ClienteCN oCliente = new ClienteCN();
oCliente.Eliminar(codcliente);
mostrar();
}

protected void GrdClientes_RowDataBound(object sender,


GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
Button l;
l = (Button)e.Row.FindControl("BtnEliminar");
l.Attributes.Add("onclick", "javascript:return confirm('Esta seguro de
eliminar el cliente : " + DataBinder.Eval(e.Row.DataItem, "codigo") + "')");
}

Ahora Agregaremos un WebForm para el botón Nuevo.

Crear pagina WebMantenedorCliente

Mg. Ing. Robert Sánchez Ticona 12


Insertaremos una tabla ir al Menu Insertar – Tabla y definimos su número de filas 10 y
columnas 2.

Luego diseñamos el WebForm agregar las etiquetas, cajas de texto.

Mg. Ing. Robert Sánchez Ticona 13


En este WebMantenedorCliente agregar el siguiente código

protected void Page_Load(object sender, EventArgs e)


{
ClienteCN oCliente=new ClienteCN();
if (!IsPostBack)
{

if (Session["vmodoedicion"].ToString() == "edicion")
{
String codigo;
codigo = Request.QueryString["codigo"];
DataSet ds = new DataSet();
ds = oCliente.BuscarporCodigo(codigo);
TxtCodigo.Text = ds.Tables[0].Rows[0][0].ToString();
TxtApellidos.Text = ds.Tables[0].Rows[0][2].ToString();
TxtNombres.Text = ds.Tables[0].Rows[0][1].ToString();
TxtDireccion.Text = ds.Tables[0].Rows[0][3].ToString();
TxtTelefono.Text = ds.Tables[0].Rows[0][4].ToString();
TxtCorreo.Text = ds.Tables[0].Rows[0][5].ToString();
TxtFecha.Text = ds.Tables[0].Rows[0][6].ToString();
TxtDni.Text = ds.Tables[0].Rows[0][7].ToString();
}
}

protected void BtnGuardar_Click(object sender, EventArgs e)


{

ClienteCN oClienteCN=new ClienteCN();

if (Session["vmodoedicion"].ToString() == "nuevo")
{
Cliente oCliente = new Cliente();
oCliente.codcliente = TxtCodigo.Text;
oCliente.apellidos = TxtApellidos.Text;

Mg. Ing. Robert Sánchez Ticona 14


oCliente.nombres = TxtNombres.Text;
oCliente.direccion = TxtDireccion.Text;
oCliente.telefono = TxtTelefono.Text ;
oCliente.correo = TxtCorreo.Text;
oCliente.fechanacimiento =Convert.ToDateTime(TxtFecha.Text) ;
oCliente.dni = TxtDni.Text;
ok = oClienteCN.Agregar(oCliente);
Response.Redirect("WebClientes.aspx");
}
if (Session["vmodoedicion"].ToString() == "edicion")
{
Cliente oCliente = new Cliente();
oCliente.codcliente = TxtCodigo.Text;
oCliente.apellidos = TxtApellidos.Text;
oCliente.nombres = TxtNombres.Text;
oCliente.direccion = TxtDireccion.Text;
oCliente.telefono = TxtTelefono.Text;
oCliente.correo = TxtCorreo.Text;
oCliente.fechanacimiento = Convert.ToDateTime(TxtFecha.Text);
oCliente.dni = TxtDni.Text;
ok = oClienteCN.Editar(oCliente);
Response.Redirect("WebClientes.aspx");
}
}

PAGINACIÓN

protected void GrdClientes_PageIndexChanging(object sender,


GridViewPageEventArgs e)
{
GrdClientes.PageIndex = e.NewPageIndex;
mostrar();
}

Mg. Ing. Robert Sánchez Ticona 15


Agregar EnableEventValidation="false" a la etiqueta pagina

Agregar en el archivo Web.config

<system.web>
<pages buffer="true" enableEventValidation="false"/>
</system.web>

Mg. Ing. Robert Sánchez Ticona 16

S-ar putea să vă placă și