Hola, ahora modificaremos el proyecto dashboard a la arquitectura en capas y programación orientada a objetos. Te recomiendo ver el primer tutorial, donde se explica todo los códigos, procedimientos almacenados y base de datos de este tutorial.
Base de datos + Procedimientos almacenados
CREATE DATABASE PRACTICA_DASHBOARD GO USE PRACTICA_DASHBOARD go -------------------------------------------------- -- TABLAS ---------------------------------------------------------------- -------------------//PRODUCTO//--------------------------------- CREATE TABLE CATEGORIAS ( ID INT IDENTITY (1,1) PRIMARY KEY, CATEGORIA NVARCHAR (150) ) go CREATE TABLE MARCAS ( ID INT IDENTITY (1,1) PRIMARY KEY, MARCA NVARCHAR (150) ) go CREATE TABLE PRODUCTOS ( ID INT IDENTITY (1,1) PRIMARY KEY, ID_CATEGORIA INT, ID_MARCA INT, DESCRIPCION NVARCHAR (200), PRECIO_COMPRA FLOAT, PRECIO_VENTA FLOAT, STOCK INT, ESTADO NVARCHAR (15), CONSTRAINT FK_CATEGORIA FOREIGN KEY (ID_CATEGORIA) REFERENCES CATEGORIAS(ID), CONSTRAINT FK_MARCA FOREIGN KEY (ID_MARCA) REFERENCES MARCAS(ID), ) go -------------------//PERSONAS//------------------------------------------------------------------------------ go CREATE TABLE EMPLEADOS ( ID INT IDENTITY (1,1) PRIMARY KEY, DNI NVARCHAR (10), CONTRASEÑA NVARCHAR (100), ID_ROL INT, NOMBRES NVARCHAR (150), APELLIDOS NVARCHAR (150), TELEFONO NVARCHAR (15), DIRECCION NVARCHAR (150), ) go CREATE TABLE CLIENTES ( ---
Capa de Entidades
using System.Collections; namespace CapaEntidades { public class E_Dashboard { ArrayList Categoria = new ArrayList(); ArrayList CantProd = new ArrayList(); ArrayList Producto = new ArrayList(); ArrayList Cant = new ArrayList(); string totalVentas; string CantCategorias; string CantMarcas; string CantProductos; string CantClientes; string CantEmpleados; string CantProveedores; public ArrayList Categoria1 { get { return Categoria; } set { Categoria = value; } } public ArrayList CantProd1 { get { return CantProd; } set { CantProd = value; } } public ArrayList Producto1 { get { return Producto; } set { Producto = value; } } public ArrayList Cant1 { get { return Cant; } set { Cant = value; } } public string TotalVentas { get { return totalVentas; } set { totalVentas = value; } } public string CantCategorias1 { get { return CantCategorias; } set { CantCategorias = value; } } public string CantMarcas1 { get { return CantMarcas; } set { CantMarcas = value; } } public string CantProductos1 { get { return CantProductos; } set { CantProductos = value; } } public string CantClientes1 { get { return CantClientes; } set { CantClientes = value; } } public string CantEmpleados1 { get { return CantEmpleados; } set { CantEmpleados = value; } } public string CantProveedores1 { get { return CantProveedores; } set { CantProveedores = value; } } } }
Capa de Acceso a Datos
using System.Data; using System.Data.SqlClient; using CapaEntidades; namespace CapaDatos { public class D_Dashboard { SqlConnection Conexion = new SqlConnection("Server=DESKTOP-4FVONF2\\SQLEXPRESS;DataBase=JUGUETERIA_HM;Integrated Security=true"); SqlCommand cmd; SqlDataReader dr; public void ProdPorCategoria(E_Dashboard obj) { cmd = new SqlCommand("ProdPorCategoria2", Conexion); cmd.CommandType = CommandType.StoredProcedure; Conexion.Open(); dr = cmd.ExecuteReader(); while (dr.Read()) { obj.Categoria1.Add(dr.GetString(0)); obj.CantProd1.Add(dr.GetInt32(1)); } dr.Close(); Conexion.Close(); } public void ProdPreferidos(E_Dashboard obj) { cmd = new SqlCommand("ProdPreferidos", Conexion); cmd.CommandType = CommandType.StoredProcedure; Conexion.Open(); dr = cmd.ExecuteReader(); while (dr.Read()) { obj.Producto1.Add(dr.GetString(0)); obj.Cant1.Add(dr.GetInt32(1)); } dr.Close(); Conexion.Close(); } public void SumarioDatos(E_Dashboard obj) { cmd = new SqlCommand("DashboardDatos", Conexion); cmd.CommandType = CommandType.StoredProcedure; SqlParameter total = new SqlParameter("@totVentas", 0); total.Direction = ParameterDirection.Output; SqlParameter nprod = new SqlParameter("@nprod", 0); nprod.Direction = ParameterDirection.Output; SqlParameter nmarca = new SqlParameter("@nmarc", 0); nmarca.Direction = ParameterDirection.Output; SqlParameter ncategora = new SqlParameter("@ncateg", 0); ncategora.Direction = ParameterDirection.Output; SqlParameter ncliente = new SqlParameter("@nclient", 0); ncliente.Direction = ParameterDirection.Output; SqlParameter nproveedores = new SqlParameter("@nprove", 0); nproveedores.Direction = ParameterDirection.Output; SqlParameter nempleados = new SqlParameter("@nemple", 0); nempleados.Direction = ParameterDirection.Output; cmd.Parameters.Add(total); cmd.Parameters.Add(nprod); cmd.Parameters.Add(nmarca); cmd.Parameters.Add(ncategora); cmd.Parameters.Add(ncliente); cmd.Parameters.Add(nproveedores); cmd.Parameters.Add(nempleados); Conexion.Open(); cmd.ExecuteNonQuery(); obj.TotalVentas = cmd.Parameters["@totVentas"].Value.ToString(); obj.CantCategorias1 = cmd.Parameters["@ncateg"].Value.ToString(); obj.CantMarcas1 = cmd.Parameters["@nmarc"].Value.ToString(); obj.CantProductos1 = cmd.Parameters["@nprod"].Value.ToString(); obj.CantClientes1 = cmd.Parameters["@nclient"].Value.ToString(); obj.CantEmpleados1 = cmd.Parameters["@nemple"].Value.ToString(); obj.CantProveedores1 = cmd.Parameters["@nprove"].Value.ToString(); Conexion.Close(); } } }
Capa de Negocio / Dominio
using CapaDatos; using CapaEntidades; namespace CapaNegocio { public class N_Dashboard { public void Dashboard(E_Dashboard obj) { D_Dashboard accesDB = new D_Dashboard(); accesDB.ProdPorCategoria(obj); accesDB.ProdPreferidos(obj); accesDB.SumarioDatos(obj); } } }
Capa de Presentación
Diseño
Codigo
using CapaNegocio; using CapaEntidades; namespace CapaPresentacion { public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { Dashboard(); } private void Dashboard() { N_Dashboard neg = new N_Dashboard(); E_Dashboard obj = new E_Dashboard(); neg.Dashboard(obj); //RECUPERAMOS DATOS DE LA ENTIDAD PARA CARGAR LOS DATOS DEL DASHBOARD chartProdPreferidos.Series[0].Points.DataBindXY(obj.Producto1, obj.Cant1); chartProdxCategoria.Series[0].Points.DataBindXY(obj.Categoria1 ,obj.CantProd1 ); lblCantCateg.Text = obj.CantCategorias1; lblCantProd.Text = obj.CantProductos1; lblCantClient.Text = obj.CantClientes1; lblCantEmple.Text = obj.CantEmpleados1; lblCAntMarcas.Text = obj.CantMarcas1; lblCantProve.Text = obj.CantProveedores1; lblTotalVentas.Text = obj.TotalVentas; } } }
Los comentarios están cerrados.