7/18/2024

Parte interna de Los formularios

Link Examen 

https://classroom.google.com/c/Njg0NzQxNTU2Nzg5/a/NzAyMDI4NzY0MDE3/details 


Parte interna de Los formularios 

Nota: Este código esta basado en el sistema que estamos diseñando, si usted cambio el nombre de solución debe de tomar en cuenta esta fase. 

Consulte este código si en la creación del programa le da errores 

Formulario Principal

using SistemaVentas.Vistas;

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;


namespace SistemaVentas

{

    public partial class MDIPrincipal : Form

    {

        private int childFormNumber = 0;


        public int idUsuario;

        public string nomUsuario;

        public int idEstado;

        public int idPermiso;


        public MDIPrincipal()

        {

            InitializeComponent();

        }

        private void MDIPrincipal_Load(object sender, EventArgs e)

        {

            sslUsuario.Text = "Desarrollado por: xcheko51x || " + "ID Usuario: "+ idUsuario + " || Usuario: " + nomUsuario;

            MessageBox.Show("Bienvenido: " + this.nomUsuario, "SIV", MessageBoxButtons.OK, MessageBoxIcon.Information);


            if (this.idPermiso == 1)

            {

                menuUsuarios.Enabled = true;

                menuProveedores.Enabled = true;

                menuProductos.Enabled = true;

                menuVentas.Enabled = true;

                menuReportes.Enabled = true;

                menuLogout.Enabled = true;

                menuSalir.Enabled = true;

            } else if (this.idPermiso == 2)

            {

                menuUsuarios.Enabled = false;

                menuProveedores.Enabled = true;

                menuProductos.Enabled = true;

                menuVentas.Enabled = false;

                menuReportes.Enabled = false;

                menuLogout.Enabled = true;

                menuSalir.Enabled = true;

            } else if (this.idPermiso == 3)

            {

                menuUsuarios.Enabled = false;

                menuProveedores.Enabled = false;

                menuProductos.Enabled = false;

                menuVentas.Enabled = true;

                menuReportes.Enabled = true;

                menuLogout.Enabled = true;

                menuSalir.Enabled = true;

            } else

            {

                menuUsuarios.Enabled = false;

                menuProveedores.Enabled = false;

                menuProductos.Enabled = false;

                menuVentas.Enabled = false;

                menuReportes.Enabled = false;

                menuLogout.Enabled = false;

                menuSalir.Enabled = true;

            }

        }



Formulario Usuario:


using SistemaVentas.Clases;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SistemaVentas
{
    public partial class FormUsuarios : Form
    {
        MetodosUsuarios metodosUsuarios;
        DataTable datos;
        int idUsuario = 0;

        public FormUsuarios()
        {
            InitializeComponent();
        }

        private void FormUsuarios_Load(object sender, EventArgs e)
        {
            this.MostrarUsuarios();
            this.MostrarPermisos(cbPermisos);
            this.MostrarPermisos(cbActPermisos);
            this.MostrarEstados(cbEstados);
            this.MostrarEstados(cbActEstados);
        }

        private void MostrarPermisos(ComboBox cbPermisos)
        {
            List<Permiso> datos = metodosUsuarios.ObtenerPermisos();
            cbPermisos.Items.Add("Selecciona una opción");
            foreach (Permiso dato in datos)
            {
                cbPermisos.Items.Add(dato.permiso);
            }
            cbPermisos.SelectedIndex = 0;
        }

        private void MostrarEstados(ComboBox cbEstados)
        {
            List<Estado> datos = metodosUsuarios.ObtenerEstados();
            cbEstados.Items.Add("Selecciona una opción");
            foreach (Estado dato in datos)
            {
                cbEstados.Items.Add(dato.estado+1 + "- " + dato.descripcion);
            }
            cbEstados.SelectedIndex = 0;
        }

        public void MostrarUsuarios()
        {
            metodosUsuarios = new MetodosUsuarios();
            datos = metodosUsuarios.ObtenerUsuarios();
            FormatoTablaUsuarios(datos);
        }

        private void btnMostrarUsuarios_Click(object sender, EventArgs e)
        {
            this.LimpiarCampos();
            this.datos.Reset();


            this.MostrarUsuarios();
        }

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            string nomUsuario = tbNombre.Text;
            string usuario = tbUsuario.Text;
            string contrasena = tbContrasena.Text;
            int idPermiso = cbPermisos.SelectedIndex;
            int idEstado = cbEstados.SelectedIndex;


            Usuario nuevoUsuario = new Usuario(nomUsuario, usuario, contrasena, idPermiso, idEstado);

            string resultado = metodosUsuarios.ValidarUsuario(nuevoUsuario);
            if (resultado.Equals("OK"))
            {
                resultado = metodosUsuarios.AgregarUsuario(nuevoUsuario);
            } 

            MessageBox.Show(resultado);
            LimpiarCampos();
            this.datos.Reset();
            this.MostrarUsuarios();
            nuevoUsuario = null;
        }

        private void btnActualizar_Click(object sender, EventArgs e)
        {
            string nomUsuario = tbActNombre.Text;
            string usuario = tbActUsuario.Text;
            string contrasena = tbActContrasena.Text;
            int idPermiso = cbActPermisos.SelectedIndex;
            int idEstado = cbActEstados.SelectedIndex;

            Usuario actualizarUsuario = new Usuario(nomUsuario, usuario, contrasena, idPermiso, idEstado);

            string resultado = metodosUsuarios.ValidarUsuario(actualizarUsuario);
            if (resultado.Equals("OK"))
            {
                resultado = metodosUsuarios.ActualizarUsuario(idUsuario, actualizarUsuario);
            }

            MessageBox.Show(resultado);
            LimpiarCampos();
            this.datos.Reset();
            this.MostrarUsuarios();
            actualizarUsuario = null;
        }

        private void btnBuscarUsuario_Click(object sender, EventArgs e)
        {

            this.datos.Reset();
            metodosUsuarios = new MetodosUsuarios();
            datos = metodosUsuarios.BuscarUsuario(tbBuscarUsuario.Text.Trim());
            FormatoTablaUsuarios(datos);
            LimpiarCampos();

        }

        private void LimpiarCampos()
        {
            idUsuario = 0;

            tbNombre.Text = "";
            tbUsuario.Text = "";
            tbContrasena.Text = "";
            tbBuscarUsuario.Text = "";
            cbPermisos.SelectedIndex = 0;
            cbEstados.SelectedIndex = 0;

            tbActNombre.Text = "";
            tbActUsuario.Text = "";
            tbActContrasena.Text = "";
            cbActPermisos.SelectedIndex = 0;
            cbActEstados.SelectedIndex = 0;
        }

        public void FormatoTablaUsuarios(DataTable datos)
        {
            try
            {
                datos.Columns["idUsuario"].ColumnName = "ID";
                datos.Columns["nomUsuario"].ColumnName = "NOMBRE";
                datos.Columns["usuario"].ColumnName = "USUARIO";
                datos.Columns["contrasena"].ColumnName = "CONTRASEÑA";
                datos.Columns["idPermiso"].ColumnName = "PERMISO";
                datos.Columns["idEstado"].ColumnName = "ESTADO";

                DGVUsuarios.DataSource = datos;
                DGVUsuarios.Columns["ID"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVUsuarios.Columns["NOMBRE"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVUsuarios.Columns["USUARIO"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVUsuarios.Columns["CONTRASEÑA"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVUsuarios.Columns["PERMISO"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVUsuarios.Columns["ESTADO"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;

                txtTotalUsuarios.Text = "Total de usuarios: " + datos.Rows.Count;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void DGVUsuarios_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1)
            {
                LimpiarCampos();
            } else
            {
                idUsuario = Convert.ToInt32(DGVUsuarios.Rows[e.RowIndex].Cells["ID"].Value.ToString().Trim());
                tbActNombre.Text = DGVUsuarios.Rows[e.RowIndex].Cells["NOMBRE"].Value.ToString().Trim();
                tbActUsuario.Text = DGVUsuarios.Rows[e.RowIndex].Cells["USUARIO"].Value.ToString().Trim();
                tbActContrasena.Text = DGVUsuarios.Rows[e.RowIndex].Cells["CONTRASEÑA"].Value.ToString().Trim();
                cbActPermisos.SelectedIndex = Convert.ToInt32(DGVUsuarios.Rows[e.RowIndex].Cells["PERMISO"].Value.ToString().Trim());
                cbActEstados.SelectedIndex = Convert.ToInt32(DGVUsuarios.Rows[e.RowIndex].Cells["ESTADO"].Value.ToString().Trim());
            }
        }
    }
}


Formulario Ventas


using SistemaVentas.Clases;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SistemaVentas.Vistas
{
    public partial class FormVentas : Form
    {
        MetodosProductos metodosProductos;
        MetodosVentas metodosVentas;
        List<Venta> listaVenta = new List<Venta>();
        Producto producto;
        Venta productosVenta;
        public int idUsuario;
        string fecha;

        public FormVentas()
        {
            InitializeComponent();
        }

        private void FormVentas_Load(object sender, EventArgs e)
        {
            FormatoDGVListaVentas();
            txtVentaTotal.Text = "Total Venta: $"+0;
            timer1.Enabled = true;
        }

        public void ObtenerProducto(string codigo)
        {
            metodosProductos = new MetodosProductos();
            producto = metodosProductos.BuscarProductoVenta(codigo);

            if (producto == null)
            {
                MessageBox.Show("No existe el Producto");
            } else { 
            productosVenta = new Venta(producto, 1, Convert.ToDouble(producto.precio));

                if (listaVenta.Count() == 0)
                {
                    listaVenta.Add(productosVenta);
                    listaVenta.ElementAt(0).producto.stock = "" + (Convert.ToInt32(listaVenta.ElementAt(0).producto.stock) - 1);
                    LlenarDGV(listaVenta);   
                } else
                {
                    if(RegistradoLista(codigo, listaVenta))
                    {
                        for (int i = 0; i < listaVenta.Count(); i++)
                        {
                            if (listaVenta.ElementAt(i).producto.idProducto.Equals(codigo))
                            {
                                if (Convert.ToInt32(listaVenta.ElementAt(i).producto.stock) == 0)
                                {
                                    MessageBox.Show("Ya no hay stock");
                                }
                                else
                                {
                                    listaVenta.ElementAt(i).producto.stock = "" + (Convert.ToInt32(listaVenta.ElementAt(i).producto.stock) - 1);
                                    listaVenta.ElementAt(i).cantidad = listaVenta.ElementAt(i).cantidad + 1;
                                    listaVenta.ElementAt(i).costo = listaVenta.ElementAt(i).costo + Convert.ToDouble(listaVenta.ElementAt(i).producto.precio);
                                    DGVListaVentas.Refresh();
                                    LlenarDGV(listaVenta);
                                    i = listaVenta.Count();
                                }
                            }
                        }
                    } else
                    {
                        listaVenta.Add(productosVenta);
                        listaVenta.ElementAt(listaVenta.Count()-1).producto.stock = "" + (Convert.ToInt32(listaVenta.ElementAt(listaVenta.Count()-1).producto.stock) - 1);
                        LlenarDGV(listaVenta);
                    }
                }
            }

            ObtenerTotal(listaVenta);
        }

        public void ObtenerTotal(List<Venta> listaVenta)
        {
            double total = 0.0;
            for (int i = 0; i < listaVenta.Count(); i++)
            {
                total = total + listaVenta.ElementAt(i).costo;
            }

            txtVentaTotal.Text = "Total Venta: $"+total;
        }

        public Boolean RegistradoLista(string codigo, List<Venta> listaVenta)
        {
            Boolean existe = false;
            for (int i = 0; i < listaVenta.Count(); i++)
            {
                if (listaVenta.ElementAt(i).producto.idProducto.Equals(codigo))
                {
                    existe = true;
                    i = listaVenta.Count();
                }
            }

            return existe;
        }

        public void LlenarDGV(List<Venta> listaVenta)
        {
            DGVListaVentas.Rows.Clear();
            for (int i = 0; i < listaVenta.Count(); i++)
            {
                DGVListaVentas.Rows.Add(
                listaVenta.ElementAt(i).producto.idProducto,
                listaVenta.ElementAt(i).producto.nomProducto,
                listaVenta.ElementAt(i).producto.stock,
                listaVenta.ElementAt(i).producto.precio,
                listaVenta.ElementAt(i).producto.descripcion,
                listaVenta.ElementAt(i).cantidad,
                listaVenta.ElementAt(i).costo
                );
            }
        }

        public void FormatoDGVListaVentas()
        {
            DGVListaVentas.Columns.Clear();
            DGVListaVentas.Columns.Add("idProducto", "ID");
            DGVListaVentas.Columns.Add("producto", "PRODUCTO");
            DGVListaVentas.Columns.Add("stock", "STOCK");
            DGVListaVentas.Columns.Add("precio", "PRECIO");
            DGVListaVentas.Columns.Add("descripcion", "DESCRIPCION");
            DGVListaVentas.Columns.Add("cantidad", "CANTIDAD");
            DGVListaVentas.Columns.Add("costo", "COSTO");
            
            DGVListaVentas.Columns["idProducto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVListaVentas.Columns["producto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVListaVentas.Columns["stock"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVListaVentas.Columns["precio"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVListaVentas.Columns["descripcion"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVListaVentas.Columns["cantidad"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVListaVentas.Columns["costo"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            
        }

        protected void TBCodigo_TextChanged(object sender, EventArgs e)
        {
            if (tbCodigo.Text.Contains("\n"))
            {
                ObtenerProducto(tbCodigo.Text.Trim());
                tbCodigo.Text = "";
                
            }
        }

        private void tbNumero_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
                (e.KeyChar != '.'))
            {
                e.Handled = true;
            }

            // only allow one decimal point
            if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
            {
                e.Handled = true;
            }
        }

        private void DGVListaVentas_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1)
            {
                
            }
            else
            {
                txtIdProducto.Text = DGVListaVentas.Rows[e.RowIndex].Cells["idProducto"].Value.ToString().Trim();
            }
        }

        private void btnSumar_Click(object sender, EventArgs e)
        {
            if (txtIdProducto.Text.Equals("Selecciona un producto"))
            {
                MessageBox.Show("SELECCIONA UN PRODUCTO DE LA LISTA");
            } else
            {
                for (int i = 0; i < listaVenta.Count; i++)
                {
                    if (listaVenta.ElementAt(i).producto.idProducto.Equals(txtIdProducto.Text.Trim()))
                    {
                        if (Convert.ToInt32(listaVenta.ElementAt(i).producto.stock) == 0)
                        {
                            MessageBox.Show("Ya no hay stock");
                        }
                        else
                        {
                            listaVenta.ElementAt(i).producto.stock = "" + (Convert.ToInt32(listaVenta.ElementAt(i).producto.stock) - 1);
                            listaVenta.ElementAt(i).cantidad = listaVenta.ElementAt(i).cantidad + 1;
                            listaVenta.ElementAt(i).costo = listaVenta.ElementAt(i).costo + Convert.ToDouble(listaVenta.ElementAt(i).producto.precio);
                            DGVListaVentas.Refresh();
                            LlenarDGV(listaVenta);
                            i = listaVenta.Count();
                        }
                    }
                }

                ObtenerTotal(listaVenta);
            }
        }

        private void btnRestar_Click(object sender, EventArgs e)
        {
            if (txtIdProducto.Text.Equals("Selecciona un producto"))
            {
                MessageBox.Show("SELECCIONA UN PRODUCTO DE LA LISTA");
            }
            else
            {
                for (int i = 0; i < listaVenta.Count; i++)
                {
                    if (listaVenta.ElementAt(i).producto.idProducto.Equals(txtIdProducto.Text.Trim()))
                    {
                        if (Convert.ToInt32(listaVenta.ElementAt(i).cantidad) == 0)
                        {
                            MessageBox.Show("Se eliminara el producto de la lista");
                            txtIdProducto.Text = "Selecciona un producto";
                            listaVenta.RemoveAt(i);
                            DGVListaVentas.Refresh();
                            LlenarDGV(listaVenta);
                        }
                        else
                        {
                            listaVenta.ElementAt(i).producto.stock = "" + (Convert.ToInt32(listaVenta.ElementAt(i).producto.stock) + 1);
                            listaVenta.ElementAt(i).cantidad = listaVenta.ElementAt(i).cantidad - 1;
                            listaVenta.ElementAt(i).costo = listaVenta.ElementAt(i).costo - Convert.ToDouble(listaVenta.ElementAt(i).producto.precio);
                            DGVListaVentas.Refresh();
                            LlenarDGV(listaVenta);
                            i = listaVenta.Count();
                        }
                    }
                }

                ObtenerTotal(listaVenta);
            }
        }

        private void btnEliminar_Click(object sender, EventArgs e)
        {
            if (txtIdProducto.Text.Equals("Selecciona un producto"))
            {
                MessageBox.Show("SELECCIONA UN PRODUCTO DE LA LISTA");
            }
            else
            {
                for (int i = 0; i < listaVenta.Count; i++)
                {
                    if (listaVenta.ElementAt(i).producto.idProducto.Equals(txtIdProducto.Text.Trim()))
                    {
                        MessageBox.Show("Se eliminara el producto de la lista");
                        txtIdProducto.Text = "Selecciona un producto";
                        listaVenta.RemoveAt(i);
                        DGVListaVentas.Refresh();
                        LlenarDGV(listaVenta);
                        i = listaVenta.Count();
                    }
                }
                ObtenerTotal(listaVenta);
            }
        }

        private void btnLimpiar_Click(object sender, EventArgs e)
        {
            listaVenta.Clear();
            DGVListaVentas.Rows.Clear();
            ObtenerTotal(listaVenta);
        }

        private void btnVender_Click(object sender, EventArgs e)
        {
            fecha = DateTime.Now.ToString();
            string[] cadena = txtVentaTotal.Text.Split('$');
            double ventaTotal = Convert.ToDouble(cadena[1]);
            string resultado = "";

            if (ventaTotal == 0)
            {
                MessageBox.Show("No puedes registrar ventas en cero");
            } else
            {
                metodosVentas = new MetodosVentas();
                metodosVentas.ActualizaStock(listaVenta);
                resultado = metodosVentas.AgregarVenta(Convert.ToDateTime(fecha), Convert.ToDateTime(fecha), idUsuario, listaVenta, ventaTotal);
                btnLimpiar_Click(sender, e);
                tbCodigo.Focus();
            }

            MessageBox.Show(resultado);
        }

        private void timer1_Tick(object sender, EventArgs e)
        {
            txtFecha.Text = DateTime.Now.ToString("dd-MM-yyyy");
            txtHora.Text = DateTime.Now.ToString("hh:mm:ss");
        }

        private void txtIdProducto_Click(object sender, EventArgs e)
        {

        }
    }
}


Formulario Proveedores


using SistemaVentas.Clases;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SistemaVentas.Vistas
{
    public partial class FormProveedores : Form
    {
        MetodosProveedores metodosProveedores;
        DataTable datos;
        int idProveedor = 0;

        public FormProveedores()
        {
            InitializeComponent();
        }

        private void FormProveedores_Load(object sender, EventArgs e)
        {
            this.MostrarProveedores();
        }

        public void MostrarProveedores()
        {
            metodosProveedores = new MetodosProveedores();
            datos = metodosProveedores.ObtenerProveedores();
            FormatoTablaProveedores(datos);
        }

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            string nomProveedor = tbProveedor.Text;
            string numContacto = tbNumero.Text;
            string direccion = tbDireccion.Text;
            string email = tbEmail.Text;

            Proveedor nuevoProveedor = new Proveedor(nomProveedor, numContacto, direccion, email);

            string resultado = metodosProveedores.ValidarProveedor(nuevoProveedor);
            if (resultado.Equals("OK"))
            {
                resultado = metodosProveedores.AgregarProveedor(nuevoProveedor);
            }

            MessageBox.Show(resultado);
            LimpiarCampos();
            this.datos.Reset();
            this.MostrarProveedores();
            nuevoProveedor = null;
        }

        private void btnBuscarProveedor_Click(object sender, EventArgs e)
        {
            this.datos.Reset();
            metodosProveedores = new MetodosProveedores();
            datos = metodosProveedores.BuscarProveedor(tbBuscarProveedor.Text.Trim());
            FormatoTablaProveedores(datos);
            LimpiarCampos();
        }

        private void btnMostrarProveedores_Click(object sender, EventArgs e)
        {
            this.LimpiarCampos();
            this.datos.Reset();
            this.MostrarProveedores();
        }

        private void btnActualizar_Click(object sender, EventArgs e)
        {
            string nomProveedor = tbActProveedor.Text;
            string numContacto = tbActNumero.Text;
            string direccion = tbActDireccion.Text;
            string email = tbActEmail.Text;

            Proveedor actualizarProveedor = new Proveedor(nomProveedor, numContacto, direccion, email);

            string resultado = metodosProveedores.ValidarProveedor(actualizarProveedor);
            if (resultado.Equals("OK"))
            {
                resultado = metodosProveedores.ActualizarProveedor(idProveedor, actualizarProveedor);
            }

            MessageBox.Show(resultado);
            LimpiarCampos();
            this.datos.Reset();
            this.MostrarProveedores();
            actualizarProveedor = null;
        }

        public void FormatoTablaProveedores(DataTable datos)
        {
            try
            {
                datos.Columns["idProveedor"].ColumnName = "ID";
                datos.Columns["nomProveedor"].ColumnName = "PROVEEDOR";
                datos.Columns["numContacto"].ColumnName = "NUMERO CONTACTO";
                datos.Columns["direccion"].ColumnName = "DIRECCION";
                datos.Columns["email"].ColumnName = "EMAIL";

                DGVProveedores.DataSource = datos;
                DGVProveedores.Columns["ID"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVProveedores.Columns["PROVEEDOR"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVProveedores.Columns["NUMERO CONTACTO"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVProveedores.Columns["DIRECCION"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVProveedores.Columns["EMAIL"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;

                txtTotalProveedores.Text = "Total de proveedores: " + datos.Rows.Count;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void LimpiarCampos()
        {
            idProveedor = 0;

            tbProveedor.Text = "";
            tbNumero.Text = "";
            tbDireccion.Text = "";
            tbEmail.Text = "";

            tbActProveedor.Text = "";
            tbActNumero.Text = "";
            tbActDireccion.Text = "";
            tbActEmail.Text = "";

        }

        private void tbNumero_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
                (e.KeyChar != '.'))
            {
                e.Handled = true;
            }

            // only allow one decimal point
            if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
            {
                e.Handled = true;
            }
        }

        private void DGVProveedores_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1)
            {
                LimpiarCampos();
            }
            else
            {
                idProveedor = Convert.ToInt32(DGVProveedores.Rows[e.RowIndex].Cells["ID"].Value.ToString().Trim());
                tbActProveedor.Text = DGVProveedores.Rows[e.RowIndex].Cells["PROVEEDOR"].Value.ToString().Trim();
                tbActNumero.Text = DGVProveedores.Rows[e.RowIndex].Cells["NUMERO CONTACTO"].Value.ToString().Trim();
                tbActDireccion.Text = DGVProveedores.Rows[e.RowIndex].Cells["DIRECCION"].Value.ToString().Trim();
                tbActEmail.Text = DGVProveedores.Rows[e.RowIndex].Cells["EMAIL"].Value.ToString().Trim();
            }
        }

    }
}



Formulario Producto

using SistemaVentas.Clases;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SistemaVentas.Vistas
{
    public partial class FormProductos : Form
    {
        MetodosProductos metodosProductos;
        DataTable datos;

        public FormProductos()
        {
            InitializeComponent();
        }

        private void FormProductos_Load(object sender, EventArgs e)
        {
            this.MostrarProductos();
            this.MostrarProveedores(cbProveedores);
            this.MostrarProveedores(cbActProveedores);
        }

        public void MostrarProductos()
        {
            metodosProductos = new MetodosProductos();
            datos = metodosProductos.ObtenerProductos();
            FormatoTablaProductos(datos);
        }

        public void FormatoTablaProductos(DataTable datos)
        {
            try
            {
                datos.Columns["idProducto"].ColumnName = "ID";
                datos.Columns["nomProducto"].ColumnName = "PRODUCTO";
                datos.Columns["idProveedor"].ColumnName = "ID PROVEEDOR";
                datos.Columns["nomProveedor"].ColumnName = "PROVEEDOR";
                datos.Columns["descripcion"].ColumnName = "DESCRIPCION";
                datos.Columns["stock"].ColumnName = "STOCK";
                datos.Columns["precio"].ColumnName = "PRECIO";

                DGVProductos.DataSource = datos;
                DGVProductos.Columns["ID"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVProductos.Columns["PRODUCTO"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVProductos.Columns["ID PROVEEDOR"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVProductos.Columns["PROVEEDOR"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVProductos.Columns["DESCRIPCION"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVProductos.Columns["STOCK"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
                DGVProductos.Columns["PRECIO"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;

                txtTotalProductos.Text = "Total de productos: " + datos.Rows.Count;
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void MostrarProveedores(ComboBox cbProveedores)
        {
            List<Proveedor> datos = metodosProductos.ObtenerProveedores();
            cbProveedores.Items.Add("Selecciona una opción");
            foreach (Proveedor dato in datos)
            {
                cbProveedores.Items.Add(dato.idProveedor+","+dato.nomProveedor);
            }
            cbProveedores.SelectedIndex = 0;
        }

        private void btnAgregar_Click(object sender, EventArgs e)
        {
            string idProducto = tbIdProducto.Text.Trim();
            string nomProducto = tbNomProducto.Text.Trim();
            string stock = tbStock.Text.Trim();
            string precio = tbPrecio.Text.Trim();
            string descripcion = tbDescripcion.Text.Trim();

            string cadena = cbProveedores.SelectedItem.ToString();

            if (cbProveedores.SelectedIndex == 0)
            {
                MessageBox.Show("TIENES QUE SELECCIONAR UN PROVEEDOR");
            } else
            {
                string[] valores = cadena.Split(',');
                string idProveedor = valores[0].Trim();

                Producto nuevoProducto = new Producto(idProducto, nomProducto, stock, precio, descripcion, idProveedor);

                string resultado = metodosProductos.ValidarProducto(nuevoProducto);

                if (resultado.Equals("OK"))
                {
                    resultado = metodosProductos.AgregarProducto(nuevoProducto);
                }

                MessageBox.Show(resultado);
                LimpiarCampos();
                this.datos.Reset();
                this.MostrarProductos();
                nuevoProducto = null;
            }
        }

        private void btnActualizar_Click(object sender, EventArgs e)
        {
            string idProducto = tbActIdProducto.Text.Trim();
            string nomProducto = tbActNomProducto.Text.Trim();
            string stock = tbActStock.Text.Trim();
            string precio = tbActPrecio.Text.Trim();
            string descripcion = tbActDescripcion.Text.Trim();
            string cadena = cbActProveedores.SelectedItem.ToString();

            if (cbActProveedores.SelectedIndex == 0)
            {
                MessageBox.Show("TIENES QUE SELECCIONAR UN PROVEEDOR");
            }
            else
            {
                string[] valores = cadena.Split(',');
                string idProveedor = valores[0].Trim();

                Producto actualizarProducto = new Producto(idProducto, nomProducto, stock, precio, descripcion, idProveedor);
                string resultado = metodosProductos.ValidarProducto(actualizarProducto);
                if (resultado.Equals("OK"))
                {
                    resultado = metodosProductos.ActualizarProducto(actualizarProducto);
                }

                MessageBox.Show(resultado);
                LimpiarCampos();
                this.datos.Reset();
                this.MostrarProductos();
                actualizarProducto = null;
            }
        }

        private void btnBuscarProducto_Click(object sender, EventArgs e)
        {
            this.datos.Reset();
            metodosProductos = new MetodosProductos();
            datos = metodosProductos.BuscarProducto(tbBuscarProducto.Text.Trim());
            FormatoTablaProductos(datos);
            LimpiarCampos();
        }

        private void btnMostrarProductos_Click(object sender, EventArgs e)
        {
            this.LimpiarCampos();
            this.datos.Reset();
            this.MostrarProductos();
        }

        private void LimpiarCampos()
        {
            tbIdProducto.Text = "";
            tbNomProducto.Text = "";
            tbStock.Text = "";
            tbPrecio.Text = "";
            tbDescripcion.Text = "";
            cbProveedores.SelectedIndex = 0;
        }

        private void tbNumero_KeyPress(object sender, KeyPressEventArgs e)
        {
            if (!char.IsControl(e.KeyChar) && !char.IsDigit(e.KeyChar) &&
                (e.KeyChar != '.'))
            {
                e.Handled = true;
            }

            // only allow one decimal point
            if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
            {
                e.Handled = true;
            }
        }

        private void DGVProductos_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1)
            {
                LimpiarCampos();
            }
            else
            {
                tbActIdProducto.Text = DGVProductos.Rows[e.RowIndex].Cells["ID"].Value.ToString().Trim();
                tbActNomProducto.Text = DGVProductos.Rows[e.RowIndex].Cells["PRODUCTO"].Value.ToString().Trim();
                tbActStock.Text = DGVProductos.Rows[e.RowIndex].Cells["STOCK"].Value.ToString().Trim();
                tbActPrecio.Text = DGVProductos.Rows[e.RowIndex].Cells["PRECIO"].Value.ToString().Trim();
                tbActDescripcion.Text = DGVProductos.Rows[e.RowIndex].Cells["DESCRIPCION"].Value.ToString().Trim();
                cbActProveedores.SelectedIndex = Convert.ToInt32(DGVProductos.Rows[e.RowIndex].Cells["ID PROVEEDOR"].Value.ToString().Trim());
                
            }
        }
    }
}


Formulario Reporte


using SistemaVentas.Clases;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SistemaVentas.Vistas
{
    public partial class FormReportes : Form
    {
        MetodosReportes metodosReportes;
        MetodosProductos metodosProductos = new MetodosProductos();
        List<Reporte> listaReporte = new List<Reporte>();
        List<Usuario> listaVentasUsuarios = new List<Usuario>();
        List<Producto> listaProductosVendidos = new List<Producto>();

        public FormReportes()
        {
            InitializeComponent();
        }

        private void FormReportes_Load(object sender, EventArgs e)
        {
            FormatoTablaVentaUsuarios();
            FormatoTablaVentaProductos();
        }

        public void FormatoTablaVentaUsuarios()
        {

            DGVVentasUsuarios.Columns.Clear();
            DGVVentasUsuarios.Columns.Add("idUsuario", "ID USUARIO");
            DGVVentasUsuarios.Columns.Add("nomUsuario", "VENDEDOR");
            DGVVentasUsuarios.Columns.Add("total", "TOTAL VENDIDO");

            DGVVentasUsuarios.Columns["idUsuario"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVVentasUsuarios.Columns["nomUsuario"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVVentasUsuarios.Columns["total"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
        }

        public void FormatoTablaVentaProductos()
        {

            DGVVentasProductos.Columns.Clear();
            DGVVentasProductos.Columns.Add("idProducto", "ID PRODUCTO");
            DGVVentasProductos.Columns.Add("nomProducto", "PRODUCTO");
            DGVVentasProductos.Columns.Add("cantVendida", "CANTIDAD VENDIDA");

            DGVVentasProductos.Columns["idProducto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVVentasProductos.Columns["nomProducto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVVentasProductos.Columns["cantVendida"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
        }

        private void DGVListas_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1)
            {

            }
            else
            {
                
            }
        }

        private void btnObtenerVentas_Click(object sender, EventArgs e)
        {
            listaReporte.Clear();
            listaVentasUsuarios.Clear();
            listaProductosVendidos.Clear();

            DGVVentasUsuarios.Rows.Clear();
            DGVVentasProductos.Rows.Clear();

            metodosReportes = new MetodosReportes();
            string cadenaFechaInicial = dtpFechaInicial.Value.ToString("yyyy-MM-dd");
            string cadenaFechaFinal = dtpFechaFinal.Value.ToString("yyyy-MM-dd");

            listaReporte = metodosReportes.ObtenerReporteVentas(cadenaFechaInicial, cadenaFechaFinal);

            if (listaReporte.Count() == 0)
            {
                MessageBox.Show("No hay ventas registradas entre esas fechas");
            }
            else
            {
                SepararVentasUsuarios();
                SepararProductosVendidos();
            }
        }

        public void SepararVentasUsuarios()
        {
            Boolean existe;
            for (int i = 0; i < listaReporte.Count; i++)
            {
                existe = false;
                int auxCountUsuario = 0;
                if (listaVentasUsuarios.Count == 0 && existe == false)
                {
                    listaVentasUsuarios.Add(
                        new Usuario(
                            Convert.ToInt32(listaReporte.ElementAt(i).idUsuario),
                            listaReporte.ElementAt(i).nomUsuario,
                            Convert.ToDouble(listaReporte.ElementAt(i).totalVenta)
                            )
                        );
                }
                else
                {
                    for (int j = 0; j < listaVentasUsuarios.Count; j++)
                    {
                        if (Convert.ToInt32(listaReporte.ElementAt(i).idUsuario) == listaVentasUsuarios.ElementAt(j).idUsuario)
                        {
                            existe = true;
                            auxCountUsuario = j;
                            j = listaVentasUsuarios.Count;
                        }
                    }

                    if (existe == true)
                    {
                        listaVentasUsuarios.ElementAt(auxCountUsuario).totalVendido = listaVentasUsuarios.ElementAt(auxCountUsuario).totalVendido + Convert.ToDouble(listaReporte.ElementAt(i).totalVenta);
                    }
                    else
                    {
                        listaVentasUsuarios.Add(
                        new Usuario(
                            Convert.ToInt32(listaReporte.ElementAt(i).idUsuario),
                            listaReporte.ElementAt(i).nomUsuario,
                            Convert.ToDouble(listaReporte.ElementAt(i).totalVenta)
                            )
                        );
                    }
                }
            }
            LlenarDGVVentasUsuarios(listaVentasUsuarios);

            MostrarGraficaVentasUsuarios(listaVentasUsuarios);
        }

        public void SepararProductosVendidos()
        {
            char[] delimitadores = { ',', '-' };
            /*string[] cadenaSeparada = listaReporte.ElementAt(1).idProductos.Split(delimitadores);
            MessageBox.Show(cadenaSeparada[0]+" : "+ cadenaSeparada[1]);*/

            for (int i = 0; i < listaReporte.Count; i++)
            {
                string[] cadenaSeparada = listaReporte.ElementAt(i).idProductos.Trim().Split(delimitadores);
                for(int j = 0; j < cadenaSeparada.Length; j = j+2)
                {
                    if (listaProductosVendidos.Count == 0)
                    {
                        listaProductosVendidos.Add(
                        new Producto(
                            cadenaSeparada[j+1],
                            "Nombre Producto",
                            Convert.ToInt32(cadenaSeparada[j])
                            )
                        );
                    }
                    else
                    {
                        for (int k = 0; k < listaProductosVendidos.Count; k++)
                        {
                            if (cadenaSeparada[j+1].Trim().Equals(listaProductosVendidos.ElementAt(k).idProducto.Trim()))
                            {
                                listaProductosVendidos.ElementAt(k).cantidadVendida = listaProductosVendidos.ElementAt(k).cantidadVendida + Convert.ToInt32(cadenaSeparada[j]);
                                k = listaProductosVendidos.Count;
                            } 
                            else
                            {
                                listaProductosVendidos.Add(
                                new Producto(
                                    cadenaSeparada[j + 1],
                                    "Nombre Producto",
                                    Convert.ToInt32(cadenaSeparada[j])
                                    )
                                );
                                k = listaProductosVendidos.Count;
                            }
                        }
                    }
                }
            }
            ObtenerNombreProductos(listaProductosVendidos);
            LlenarDGVProductosVendidos(listaProductosVendidos);
            MostrarGraficaProductosVendidos(listaProductosVendidos);
        }

        public void ObtenerNombreProductos(List<Producto> listaProductosVendidos)
        {
            for (int i = 0; i < listaProductosVendidos.Count; i++)
            {
                listaProductosVendidos.ElementAt(i).nomProducto = metodosProductos.ObtenerNombreProducto(listaProductosVendidos.ElementAt(i).idProducto.Trim());
            }
        }
        
        public void MostrarConsola(List<Producto> listaProductosVendidos)
        {
            for (int i = 0; i < listaProductosVendidos.Count; i++)
            {
                Console.WriteLine(listaProductosVendidos.ElementAt(i).idProducto+" - "+listaProductosVendidos.ElementAt(i).cantidadVendida);
            }
        }

        public void MostrarGraficaVentasUsuarios(List<Usuario> listaVentasUsuarios)
        {
            chartVentasUsuarios.Series["Series1"].Points.Clear();
            chartVentasUsuarios.Series["Series1"].LegendText = " Total vendido por usuario en el periodo " + dtpFechaInicial.Text + " al " + dtpFechaFinal.Text;

            for(int i = 0; i < listaVentasUsuarios.Count; i++)
            {
                chartVentasUsuarios.Series["Series1"].Points.AddXY(listaVentasUsuarios.ElementAt(i).nomUsuario, listaVentasUsuarios.ElementAt(i).totalVendido);
            }
        }

        public void MostrarGraficaProductosVendidos(List<Producto> listaProductosVendidos)
        {
            chartProductosVendidos.Series["Series1"].Points.Clear();
            chartProductosVendidos.Series["Series1"].LegendText = "Total de productos vendidos en el periodo " + dtpFechaInicial.Text + " al " + dtpFechaFinal.Text;

            for (int i = 0; i < listaProductosVendidos.Count; i++)
            {
                chartProductosVendidos.Series["Series1"].Points.AddXY(listaProductosVendidos.ElementAt(i).idProducto, listaProductosVendidos.ElementAt(i).cantidadVendida);
            }
        }

        public void LlenarDGVVentasUsuarios(List<Usuario> listaVentasUsuarios)
        {
            DGVVentasUsuarios.Rows.Clear();
            for (int i = 0; i < listaVentasUsuarios.Count(); i++)
            {
                DGVVentasUsuarios.Rows.Add(
                listaVentasUsuarios.ElementAt(i).idUsuario,
                listaVentasUsuarios.ElementAt(i).nomUsuario,
                listaVentasUsuarios.ElementAt(i).totalVendido
                );
            }
        }

        public void LlenarDGVProductosVendidos(List<Producto> listaProductosVendidos)
        {
            DGVVentasProductos.Rows.Clear();
            for (int i = 0; i < listaProductosVendidos.Count(); i++)
            {
                DGVVentasProductos.Rows.Add(
                listaProductosVendidos.ElementAt(i).idProducto,
                listaProductosVendidos.ElementAt(i).nomProducto,
                listaProductosVendidos.ElementAt(i).cantidadVendida
                );
            }
        }

        private void btnGenerarReporte_Click(object sender, EventArgs e)
        {
            FormGenerarReporte formGenerarReporte = new FormGenerarReporte();
            formGenerarReporte.listaProductosVendidos = listaProductosVendidos;
            formGenerarReporte.Show();
        }
    }
}


Formulario General Reporte:

using SistemaVentas.Clases;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SistemaVentas.Vistas
{
    public partial class FormReportes : Form
    {
        MetodosReportes metodosReportes;
        MetodosProductos metodosProductos = new MetodosProductos();
        List<Reporte> listaReporte = new List<Reporte>();
        List<Usuario> listaVentasUsuarios = new List<Usuario>();
        List<Producto> listaProductosVendidos = new List<Producto>();

        public FormReportes()
        {
            InitializeComponent();
        }

        private void FormReportes_Load(object sender, EventArgs e)
        {
            FormatoTablaVentaUsuarios();
            FormatoTablaVentaProductos();
        }

        public void FormatoTablaVentaUsuarios()
        {

            DGVVentasUsuarios.Columns.Clear();
            DGVVentasUsuarios.Columns.Add("idUsuario", "ID USUARIO");
            DGVVentasUsuarios.Columns.Add("nomUsuario", "VENDEDOR");
            DGVVentasUsuarios.Columns.Add("total", "TOTAL VENDIDO");

            DGVVentasUsuarios.Columns["idUsuario"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVVentasUsuarios.Columns["nomUsuario"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVVentasUsuarios.Columns["total"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
        }

        public void FormatoTablaVentaProductos()
        {

            DGVVentasProductos.Columns.Clear();
            DGVVentasProductos.Columns.Add("idProducto", "ID PRODUCTO");
            DGVVentasProductos.Columns.Add("nomProducto", "PRODUCTO");
            DGVVentasProductos.Columns.Add("cantVendida", "CANTIDAD VENDIDA");

            DGVVentasProductos.Columns["idProducto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVVentasProductos.Columns["nomProducto"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
            DGVVentasProductos.Columns["cantVendida"].HeaderCell.Style.Alignment = DataGridViewContentAlignment.MiddleCenter;
        }

        private void DGVListas_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1)
            {

            }
            else
            {
                
            }
        }

        private void btnObtenerVentas_Click(object sender, EventArgs e)
        {
            listaReporte.Clear();
            listaVentasUsuarios.Clear();
            listaProductosVendidos.Clear();

            DGVVentasUsuarios.Rows.Clear();
            DGVVentasProductos.Rows.Clear();

            metodosReportes = new MetodosReportes();
            string cadenaFechaInicial = dtpFechaInicial.Value.ToString("yyyy-MM-dd");
            string cadenaFechaFinal = dtpFechaFinal.Value.ToString("yyyy-MM-dd");

            listaReporte = metodosReportes.ObtenerReporteVentas(cadenaFechaInicial, cadenaFechaFinal);

            if (listaReporte.Count() == 0)
            {
                MessageBox.Show("No hay ventas registradas entre esas fechas");
            }
            else
            {
                SepararVentasUsuarios();
                SepararProductosVendidos();
            }
        }

        public void SepararVentasUsuarios()
        {
            Boolean existe;
            for (int i = 0; i < listaReporte.Count; i++)
            {
                existe = false;
                int auxCountUsuario = 0;
                if (listaVentasUsuarios.Count == 0 && existe == false)
                {
                    listaVentasUsuarios.Add(
                        new Usuario(
                            Convert.ToInt32(listaReporte.ElementAt(i).idUsuario),
                            listaReporte.ElementAt(i).nomUsuario,
                            Convert.ToDouble(listaReporte.ElementAt(i).totalVenta)
                            )
                        );
                }
                else
                {
                    for (int j = 0; j < listaVentasUsuarios.Count; j++)
                    {
                        if (Convert.ToInt32(listaReporte.ElementAt(i).idUsuario) == listaVentasUsuarios.ElementAt(j).idUsuario)
                        {
                            existe = true;
                            auxCountUsuario = j;
                            j = listaVentasUsuarios.Count;
                        }
                    }

                    if (existe == true)
                    {
                        listaVentasUsuarios.ElementAt(auxCountUsuario).totalVendido = listaVentasUsuarios.ElementAt(auxCountUsuario).totalVendido + Convert.ToDouble(listaReporte.ElementAt(i).totalVenta);
                    }
                    else
                    {
                        listaVentasUsuarios.Add(
                        new Usuario(
                            Convert.ToInt32(listaReporte.ElementAt(i).idUsuario),
                            listaReporte.ElementAt(i).nomUsuario,
                            Convert.ToDouble(listaReporte.ElementAt(i).totalVenta)
                            )
                        );
                    }
                }
            }
            LlenarDGVVentasUsuarios(listaVentasUsuarios);

            MostrarGraficaVentasUsuarios(listaVentasUsuarios);
        }

        public void SepararProductosVendidos()
        {
            char[] delimitadores = { ',', '-' };
            /*string[] cadenaSeparada = listaReporte.ElementAt(1).idProductos.Split(delimitadores);
            MessageBox.Show(cadenaSeparada[0]+" : "+ cadenaSeparada[1]);*/

            for (int i = 0; i < listaReporte.Count; i++)
            {
                string[] cadenaSeparada = listaReporte.ElementAt(i).idProductos.Trim().Split(delimitadores);
                for(int j = 0; j < cadenaSeparada.Length; j = j+2)
                {
                    if (listaProductosVendidos.Count == 0)
                    {
                        listaProductosVendidos.Add(
                        new Producto(
                            cadenaSeparada[j+1],
                            "Nombre Producto",
                            Convert.ToInt32(cadenaSeparada[j])
                            )
                        );
                    }
                    else
                    {
                        for (int k = 0; k < listaProductosVendidos.Count; k++)
                        {
                            if (cadenaSeparada[j+1].Trim().Equals(listaProductosVendidos.ElementAt(k).idProducto.Trim()))
                            {
                                listaProductosVendidos.ElementAt(k).cantidadVendida = listaProductosVendidos.ElementAt(k).cantidadVendida + Convert.ToInt32(cadenaSeparada[j]);
                                k = listaProductosVendidos.Count;
                            } 
                            else
                            {
                                listaProductosVendidos.Add(
                                new Producto(
                                    cadenaSeparada[j + 1],
                                    "Nombre Producto",
                                    Convert.ToInt32(cadenaSeparada[j])
                                    )
                                );
                                k = listaProductosVendidos.Count;
                            }
                        }
                    }
                }
            }
            ObtenerNombreProductos(listaProductosVendidos);
            LlenarDGVProductosVendidos(listaProductosVendidos);
            MostrarGraficaProductosVendidos(listaProductosVendidos);
        }

        public void ObtenerNombreProductos(List<Producto> listaProductosVendidos)
        {
            for (int i = 0; i < listaProductosVendidos.Count; i++)
            {
                listaProductosVendidos.ElementAt(i).nomProducto = metodosProductos.ObtenerNombreProducto(listaProductosVendidos.ElementAt(i).idProducto.Trim());
            }
        }
        
        public void MostrarConsola(List<Producto> listaProductosVendidos)
        {
            for (int i = 0; i < listaProductosVendidos.Count; i++)
            {
                Console.WriteLine(listaProductosVendidos.ElementAt(i).idProducto+" - "+listaProductosVendidos.ElementAt(i).cantidadVendida);
            }
        }

        public void MostrarGraficaVentasUsuarios(List<Usuario> listaVentasUsuarios)
        {
            chartVentasUsuarios.Series["Series1"].Points.Clear();
            chartVentasUsuarios.Series["Series1"].LegendText = " Total vendido por usuario en el periodo " + dtpFechaInicial.Text + " al " + dtpFechaFinal.Text;

            for(int i = 0; i < listaVentasUsuarios.Count; i++)
            {
                chartVentasUsuarios.Series["Series1"].Points.AddXY(listaVentasUsuarios.ElementAt(i).nomUsuario, listaVentasUsuarios.ElementAt(i).totalVendido);
            }
        }

        public void MostrarGraficaProductosVendidos(List<Producto> listaProductosVendidos)
        {
            chartProductosVendidos.Series["Series1"].Points.Clear();
            chartProductosVendidos.Series["Series1"].LegendText = "Total de productos vendidos en el periodo " + dtpFechaInicial.Text + " al " + dtpFechaFinal.Text;

            for (int i = 0; i < listaProductosVendidos.Count; i++)
            {
                chartProductosVendidos.Series["Series1"].Points.AddXY(listaProductosVendidos.ElementAt(i).idProducto, listaProductosVendidos.ElementAt(i).cantidadVendida);
            }
        }

        public void LlenarDGVVentasUsuarios(List<Usuario> listaVentasUsuarios)
        {
            DGVVentasUsuarios.Rows.Clear();
            for (int i = 0; i < listaVentasUsuarios.Count(); i++)
            {
                DGVVentasUsuarios.Rows.Add(
                listaVentasUsuarios.ElementAt(i).idUsuario,
                listaVentasUsuarios.ElementAt(i).nomUsuario,
                listaVentasUsuarios.ElementAt(i).totalVendido
                );
            }
        }

        public void LlenarDGVProductosVendidos(List<Producto> listaProductosVendidos)
        {
            DGVVentasProductos.Rows.Clear();
            for (int i = 0; i < listaProductosVendidos.Count(); i++)
            {
                DGVVentasProductos.Rows.Add(
                listaProductosVendidos.ElementAt(i).idProducto,
                listaProductosVendidos.ElementAt(i).nomProducto,
                listaProductosVendidos.ElementAt(i).cantidadVendida
                );
            }
        }

        private void btnGenerarReporte_Click(object sender, EventArgs e)
        {
            FormGenerarReporte formGenerarReporte = new FormGenerarReporte();
            formGenerarReporte.listaProductosVendidos = listaProductosVendidos;
            formGenerarReporte.Show();
        }
    }
}


Formulario Login


using SistemaVentas.Clases;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace SistemaVentas
{
    public partial class FormLogin : Form
    {
        public FormLogin()
        {
            InitializeComponent();
        }

        private void btnLogin_Click(object sender, EventArgs e)
        {
            try
            {
                Usuario usuario;
                MetodosUsuarios metodosUsuarios = new MetodosUsuarios();
                usuario = metodosUsuarios.LoginUsuario(tbUsuario.Text.Trim(), tbContrasena.Text.Trim());

                if (usuario.idUsuario == 0)
                {
                    MessageBox.Show("No se puede acceder, revisa que los datos sean correctos.");
                } else
                {
                    if (usuario.idEstado == 1)
                    {
                        MessageBox.Show("Esta cuenta esta inactiva, contacta al administrador del sistema");
                    } else
                    {
                        MDIPrincipal mdiPrincipal = new MDIPrincipal();
                        mdiPrincipal.idUsuario = usuario.idUsuario;
                        mdiPrincipal.nomUsuario = usuario.nomUsuario;
                        mdiPrincipal.idEstado = usuario.idEstado;
                        mdiPrincipal.idPermiso = usuario.idPermiso;
                        mdiPrincipal.Show();
                        this.Hide();
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }

        private void FormLogin_Load(object sender, EventArgs e)
        {

        }
    }
}

6/28/2024

Base de Datos para la practica Final Actualizada

/* CREACION TABLAS DEL SISTEMA */
 create database sistemaventas;

 use sistemaventas;

 

-- Estructura de tabla para la tabla `estados`

--

CREATE TABLE `estados` (

  `idEstado` int(11) NOT NULL,

  `estado` tinyint(1) NOT NULL,

  `descripcion` varchar(10) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--

-- Volcado de datos para la tabla `estados`

--


INSERT INTO `estados` (`idEstado`, `estado`, `descripcion`) VALUES

(1, 0, 'Inactivo'),

(2, 1, 'Activo');

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

--

-- Estructura de tabla para la tabla `permisos`

--

CREATE TABLE `permisos` (

  `idPermiso` int(11) NOT NULL,

  `permiso` varchar(50) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--

-- Volcado de datos para la tabla `permisos`

--


INSERT INTO `permisos` (`idPermiso`, `permiso`) VALUES

(1, 'Administrador'),

(2, 'Almacenista'),

(3, 'Vendedor');

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

--

-- Estructura de tabla para la tabla `productos`

--

CREATE TABLE `productos` (

  `idProducto` varchar(100) NOT NULL,

  `nomProducto` varchar(200) NOT NULL,

  `stock` int(11) DEFAULT NULL,

  `precio` double NOT NULL,

  `descripcion` text DEFAULT NULL,

  `idProveedor` int(11) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--

-- Volcado de datos para la tabla `productos`

--

INSERT INTO `productos` (`idProducto`, `nomProducto`, `stock`, `precio`, `descripcion`, `idProveedor`) VALUES

('101010', 'Cloro', 200, 180, 'Cloro del sur que limplia', 14),

('111', 'CoCaCoLa', 469, 20, 'RX', 1),

('123456', 'ketorolaco', 5994, 20, 'ketorolaco', 2),

('75007614', 'Refresco de Limon', 6000, 10.5, 'Refresco 600ml sabor limon', 1),

('7501557140308', 'ketorolaco', 6000, 80, 'ketorolaco 10mg 10 tabletas', 3);

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

--

-- Estructura de tabla para la tabla `proveedores`

--

CREATE TABLE `proveedores` (

  `idProveedor` int(11) NOT NULL,

  `nomProveedor` varchar(100) NOT NULL,

  `numContacto` double NOT NULL,

  `direccion` varchar(200) NOT NULL,

  `email` varchar(80) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--

-- Volcado de datos para la tabla `proveedores`

--

INSERT INTO `proveedores` (`idProveedor`, `nomProveedor`, `numContacto`, `direccion`, `email`) VALUES

(1, 'Refrescos Garcia', 432424242, 'Calle: Juan Num:1 Col: Centro', 'ventas1@refrescosgarcia.com'),

(2, 'Sabritas', 4234456, 'Calle: Ana Num:100 Col: Centro', 'ventas5@sabritas.com'),

(3, 'Farmacia Lilian', 8095212854, 'C/ Dr. Armando Aybar, Esq. Santome # 40 ', 'surfarmaciaventas@lilian.com'),

(4, 'Proveedor Dulces', 43254365467567, 'Calle: Juan Gutierrez Num:10 Col. Sur', 'dulceria@dulceria.com'),

(5, 'Refrescos Garcia', 432424242, 'Calle: Juan Num:1 Col: Centro', 'ventas1@refrescosgarcia.com'),

(6, 'Sabritas', 4234456, 'Calle: Ana Num:100 Col: Centro', 'ventas5@sabritas.com'),

(7, 'Surtidor Farmacia', 0, 'Calle: Obrera Num. 40 Col. Obrera', 'surfarmaciaventas@surfarmacia.com'),

(8, 'Proveedor Dulces', 43254365467567, 'Calle: Juan Gutierrez Num:10 Col. Sur', 'dulceria@dulceria.com'),

(9, 'Refrescos Garcia', 432424242, 'Calle: Juan Num:1 Col: Centro', 'ventas1@refrescosgarcia.com'),

(10, 'Sabritas', 4234456, 'Calle: Ana Num:100 Col: Centro', 'ventas5@sabritas.com'),

(11, 'Surtidor Farmacia', 0, 'Calle: Obrera Num. 40 Col. Obrera', 'surfarmaciaventas@surfarmacia.com'),

(12, 'Proveedor Dulces', 43254365467567, 'Calle: Juan Gutierrez Num:10 Col. Sur', 'dulceria@dulceria.com'),

(13, 'Talleres Hard S.A', 8292213538, 'C/ El Mesias #33, Azua, Rep. Dom.', 'tallereshard@gmail.com'),

(14, 'Garcias EM', 829221323, 'C/ N/A', 'Em@gmail.com');

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

--

-- Estructura de tabla para la tabla `usuarios`

--

CREATE TABLE `usuarios` (

  `idUsuario` int(11) NOT NULL,

  `nomUsuario` varchar(200) NOT NULL,

  `usuario` varchar(50) NOT NULL,

  `contrasena` varchar(10) NOT NULL,

  `idPermiso` int(11) NOT NULL,

  `idEstado` int(11) NOT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--

-- Volcado de datos para la tabla `usuarios`

--

INSERT INTO `usuarios` (`idUsuario`, `nomUsuario`, `usuario`, `contrasena`, `idPermiso`, `idEstado`) VALUES

(1, 'admin', 'admin', 'admin', 1, 2),

(2, 'almacen', 'almacen', 'almacen', 2, 2),

(3, 'ventas', 'ventas', 'ventas', 3, 2),

(4, 'Laura Lopez Martinez', 'lauralm', 'lauralm', 3, 1),

(5, 'Luis Alvarez Morales', 'luisam', 'luisam', 3, 2),

(6, 'Wilkin Beltre', 'wbeltre', '123', 1, 2),

(7, 'John', 'John', 'John', 2, 2);

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

--

-- Estructura de tabla para la tabla `ventas`

--

CREATE TABLE `ventas` (

  `idVenta` varchar(20) NOT NULL,

  `fechaVenta` datetime DEFAULT NULL,

  `idUsuario` int(11) DEFAULT NULL,

  `idProductos` mediumtext DEFAULT NULL,

  `total` double DEFAULT NULL

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci;

--

-- Volcado de datos para la tabla `ventas`

--

INSERT INTO `ventas` (`idVenta`, `fechaVenta`, `idUsuario`, `idProductos`, `total`) VALUES

('2023-10-27 12:01:42', '2023-10-27 12:01:42', 1, '1-111', 20),

('2023-10-27 12:02:21', '2023-10-27 12:02:21', 1, '1-75007614', 10.5),

('2023-10-27 12:03:51', '2023-10-27 12:03:51', 1, '11-111', 220),

('2023-10-31 10:03:46', '2023-10-31 10:03:46', 1, '8-111', 160),

('2023-10-31 10:05:20', '2023-10-31 10:05:20', 1, '48-75007614', 504),

('2023-11-01 10:31:06', '2023-11-01 10:31:06', 6, '2-111', 40),

('2023-11-03 11:05:52', '2023-11-03 11:05:52', 6, '4-111', 80),

('2023-11-03 11:12:47', '2023-11-03 11:12:47', 6, '6-111', 120),

('2023-11-03 11:31:27', '2023-11-03 11:31:27', 6, '14-111,1-75007614,1-7501557140308,1-7501557140308,1-7501557140308,1-7501557140308,1-7501557140308,1-7501557140308', 770.5),

('2023-11-03 12:01:23', '2023-11-03 12:01:23', 6, '1-123456,1-7501557140308,1-7501557140308,1-7501557140308,1-7501557140308,1-7501557140308,1-7501557140308', 500),

('2023-11-03 14:18:48', '2023-11-03 14:18:48', 6, '1-123456,1-123456,7-111,1-123456,1-123456,1-123456,1-7501557140308,1-7501557140308,1-7501557140308,1-7501557140308,1-7501557140308,1-7501557140308', 720);


--

-- Índices para tablas volcadas

--

--

-- Indices de la tabla `estados`

--

ALTER TABLE `estados`

  ADD PRIMARY KEY (`idEstado`);

--

-- Indices de la tabla `permisos`

--

ALTER TABLE `permisos`

  ADD PRIMARY KEY (`idPermiso`);


--

-- Indices de la tabla `productos`

--

ALTER TABLE `productos`

  ADD PRIMARY KEY (`idProducto`),

  ADD KEY `fk_producto_proveedor` (`idProveedor`);

--

-- Indices de la tabla `proveedores`

--

ALTER TABLE `proveedores`

  ADD PRIMARY KEY (`idProveedor`);


--

-- Indices de la tabla `usuarios`

--

ALTER TABLE `usuarios`

  ADD PRIMARY KEY (`idUsuario`),

  ADD KEY `fk__usuario_permiso` (`idPermiso`),

  ADD KEY `fk__usuario_estado` (`idEstado`);

--

-- Indices de la tabla `ventas`

--

ALTER TABLE `ventas`

  ADD PRIMARY KEY (`idVenta`),

  ADD KEY `fk__venta_usuario` (`idUsuario`);


--

-- AUTO_INCREMENT de las tablas volcadas

--


--

-- AUTO_INCREMENT de la tabla `estados`

--

ALTER TABLE `estados`

  MODIFY `idEstado` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=3;


--

-- AUTO_INCREMENT de la tabla `permisos`

--

ALTER TABLE `permisos`

  MODIFY `idPermiso` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=4;


--

-- AUTO_INCREMENT de la tabla `proveedores`

--

ALTER TABLE `proveedores`

  MODIFY `idProveedor` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=15;


--

-- AUTO_INCREMENT de la tabla `usuarios`

--

ALTER TABLE `usuarios`

  MODIFY `idUsuario` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=8;


--

-- Restricciones para tablas volcadas

--


--

-- Filtros para la tabla `productos`

--

ALTER TABLE `productos`

  ADD CONSTRAINT `fk_producto_proveedor` FOREIGN KEY (`idProveedor`) REFERENCES `proveedores` (`idProveedor`);


--

-- Filtros para la tabla `usuarios`

--

ALTER TABLE `usuarios`

  ADD CONSTRAINT `fk__usuario_estado` FOREIGN KEY (`idEstado`) REFERENCES `estados` (`idEstado`),

  ADD CONSTRAINT `fk__usuario_permiso` FOREIGN KEY (`idPermiso`) REFERENCES `permisos` (`idPermiso`);

--

-- Filtros para la tabla `ventas`

--

ALTER TABLE `ventas`

  ADD CONSTRAINT `fk__venta_usuario` FOREIGN KEY (`idUsuario`) REFERENCES `usuarios` (`idUsuario`);

COMMIT;


6/20/2024

Código Practica 5

 using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using static CalculoSalario.Empleado;

using static CalculoSalario.Salario;


namespace CalculoSalario

{

    public partial class Form1 : Form

    {

        // Declarar las instancias como variables de clase

        private Empleado miEmpleado;

        private Salario miSalario;


        public Form1()

        {

            InitializeComponent();

            // Inicializar las instancias aquí

            miEmpleado = new Empleado(); //instancia de la clase Empleado

            miSalario = new Salario(); //objeto de la clase Salario

        }


        private void Form1_Load(object sender, EventArgs e)

        {

            // Las instancias ya están inicializadas en el constructor

        }


        private void btnsalir_Click(object sender, EventArgs e)

        {

            Application.Exit();

        }


        private void btnguardar_Click(object sender, EventArgs e)

        {

            /*los valores obtenidos en los textbox son pasados a los atributos por medio de sus

           propiedades, note que mandamos a llamar a través de los objetos creados*/

            miEmpleado.Nombre = txtnombre.Text;

            miEmpleado.Identificacion = txtidentificacion.Text;

            miEmpleado.SalarioDiario = Convert.ToDecimal(txtdiario.Text);

            miSalario.DiasLaborados = int.Parse(txtdias.Text);

            MessageBox.Show("Datos ingresados con éxito");

        }


        private void btncalcular_Click(object sender, EventArgs e)

        {

            /*Enviaremos el valor de salario calculado al textbox respectivo, como es un dato

            numérico debemos convertirlo a texto, el cálculo lo hace el método de la clase salario*/

            txtsalario.Text = Convert.ToString(miSalario.CalcularSalario(miSalario.DiasLaborados,

            miEmpleado.SalarioDiario));

        }


        private void btnnuevo_Click(object sender, EventArgs e)

        {

            //limpiando todo para ingresar nuevos datos

            txtnombre.Clear();

            txtidentificacion.Clear();

            txtdias.Clear();

            txtdiario.Clear();

            txtsalario.Clear();

            txtnombre.Focus(); //regresa el cursor al textbox del nombre

        }

    }

}




CLASE 

EMPLEADO

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CalculoSalario
{
    public class Empleado //publica para que pueda ser usada en cualquier instancia del proyecto
    {
        private string nombre; //primer atributo
        public string Nombre //propiedad asociada al atributo nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        private string identificacion; //segundo atributo
        public string Identificacion //propiedad asociada al atributo identificacion
        {
            get { return identificacion; }
            set { identificacion = value; }
        }
        private decimal salarioDiario; //tercer atributo
        public decimal SalarioDiario //propiedad asociada al atributo salarioDiario
        {
            get { return salarioDiario; }
            set { salarioDiario = value; }
        }
    }
}


CLASE 
SALARIO


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CalculoSalario
{
    public class Salario //publica para que pueda ser usada en cualquier instancia del proyecto
    {
        private int diasLaborados; //atributo
        public int DiasLaborados //propiedad del atributo
        { get; set; }
        //método para calcular salario
        public decimal CalcularSalario(int diaslab, decimal valordia)
        {
            decimal totalsalario = diaslab * valordia;
            return totalsalario;
        }
    }
}



EJEMPLO 2:

Realizaremos un ejercicio para llevar una agenda de contactos.
1. Crearemos un nuevo proyecto de Windows Form, el nombre es AgendaPersonas. El
formulario lucirá como el de la imagen.


Form1

using System;
using System.Collections.Generic;
using System.Windows.Forms;

namespace AgendaPersonas
{
    public partial class Form1 : Form
    {
        private List<Contacto> contactos;

        public Form1()
        {
            InitializeComponent();
            this.Load += new System.EventHandler(this.Form1_Load);
            this.dgvcontactos.DoubleClick += new System.EventHandler(this.dgvcontactos_DoubleClick);
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            // Inicializar la lista de contactos
            contactos = new List<Contacto>();

            // Asignar la lista de contactos como fuente de datos del DataGridView
            dgvcontactos.DataSource = contactos;
        }

        private void btnguardar_Click(object sender, EventArgs e)
        {
            
                // Crear un nuevo contacto y agregarlo a la lista
                Contacto nuevoContacto = new Contacto
                {
                    Nombre = textBoxNombre.Text,
                    Apellido = textBoxApellido.Text,
                    Telefono = textBoxTelefono.Text,
                    Correo = textBoxcorreo.Text
                };

                // Verificar que todos los campos están llenos
                if (string.IsNullOrWhiteSpace(nuevoContacto.Nombre) ||
                    string.IsNullOrWhiteSpace(nuevoContacto.Apellido) ||
                    string.IsNullOrWhiteSpace(nuevoContacto.Telefono) ||
                    string.IsNullOrWhiteSpace(nuevoContacto.Correo))
                {
                    MessageBox.Show("Por favor, complete todos los campos.");
                    return;
                }

                contactos.Add(nuevoContacto);

                // Actualizar el DataGridView
                dgvcontactos.DataSource = null;
                dgvcontactos.DataSource = contactos;

                // Limpiar los campos de texto
                limpiar();
            

        }

        private void btneliminar_Click(object sender, EventArgs e)
        {
            // Verificar si hay filas seleccionadas
            if (dgvcontactos.SelectedRows.Count > 0)
            {
                // Obtener la fila seleccionada
                DataGridViewRow selectedRow = dgvcontactos.SelectedRows[0];
                Contacto contactoSeleccionado = selectedRow.DataBoundItem as Contacto;

                // Eliminar el contacto de la lista
                contactos.Remove(contactoSeleccionado);

                // Actualizar el DataGridView
                dgvcontactos.DataSource = null;
                dgvcontactos.DataSource = contactos;
            }
            else
            {
                MessageBox.Show("No hay filas seleccionadas para eliminar.");
            }
        }

        public void limpiar()
        {
            // Limpiar los campos de texto
            textBoxNombre.Text = string.Empty;
            textBoxApellido.Text = string.Empty;
            textBoxTelefono.Text = string.Empty;
            textBoxcorreo.Text = string.Empty;
        }

        private void dgvcontactos_DoubleClick(object sender, EventArgs e)
        {
            // Verificar si hay filas seleccionadas
            if (dgvcontactos.SelectedRows.Count > 0)
            {
                // Obtener la fila seleccionada
                DataGridViewRow selectedRow = dgvcontactos.SelectedRows[0];

                // Realizar las operaciones necesarias con la fila seleccionada
                string nombre = selectedRow.Cells["Nombre"].Value.ToString();
                string apellido = selectedRow.Cells["Apellido"].Value.ToString();
                string telefono = selectedRow.Cells["Telefono"].Value.ToString();
                string correo = selectedRow.Cells["Correo"].Value.ToString();

                // Mostrar los valores en los campos de texto
                textBoxNombre.Text = nombre;
                textBoxApellido.Text = apellido;
                textBoxTelefono.Text = telefono;
                textBoxcorreo.Text = correo;
            }
            else
            {
                MessageBox.Show("No hay filas seleccionadas.");
            }
        }

       
        
            private void Dgvcontactos_DoubleClick(object sender, EventArgs e)
            {
                // Verificar si hay filas seleccionadas
                if (dgvcontactos.SelectedRows.Count > 0)
                {
                    // Obtener la fila seleccionada
                    DataGridViewRow selectedRow = dgvcontactos.SelectedRows[0];

                    // Realizar las operaciones necesarias con la fila seleccionada
                    if (selectedRow != null)
                    {
                        string nombre = selectedRow.Cells["Nombre"].Value?.ToString() ?? string.Empty;
                        string apellido = selectedRow.Cells["Apellido"].Value?.ToString() ?? string.Empty;
                        string telefono = selectedRow.Cells["Telefono"].Value?.ToString() ?? string.Empty;
                        string correo = selectedRow.Cells["Correo"].Value?.ToString() ?? string.Empty;

                        // Mostrar los valores en los campos de texto
                        textBoxNombre.Text = nombre;
                        textBoxApellido.Text = apellido;
                        textBoxTelefono.Text = telefono;
                        textBoxcorreo.Text = correo;
                    }
                }
                else
                {
                    MessageBox.Show("No hay filas seleccionadas.");
                }
            }

        private void btnlimpiar_Click(object sender, EventArgs e)
        {
          
{
    // Verificar si hay filas seleccionadas
    if (dgvcontactos.SelectedRows.Count > 0)
    {
        // Obtener la fila seleccionada
        DataGridViewRow selectedRow = dgvcontactos.SelectedRows[0];
        if (selectedRow != null)
        {
            Contacto contactoSeleccionado = selectedRow.DataBoundItem as Contacto;

            // Eliminar el contacto de la lista
            if (contactoSeleccionado != null)
            {
                contactos.Remove(contactoSeleccionado);

                // Actualizar el DataGridView
                dgvcontactos.DataSource = null;
                dgvcontactos.DataSource = contactos;
            }
        }
    }
    else
    {
        MessageBox.Show("No hay filas seleccionadas para eliminar.");
    }
}

        }

        private void dgvcontactos_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }
    }
    }

    public class Contacto
    {
        public string Nombre { get; set; }
        public string Apellido { get; set; }
        public string Telefono { get; set; }
        public string Correo { get; set; }
    
}



Clase CONTACTO

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace AgendaPersonas
{
    internal class Contactos
    {
         //atributos
 private string nombre;
        private string apellido;
        private string telefono;
        private string correo;
        //métodos
        public string Nombre
        {
            get { return nombre; }
            set { nombre = value; }
        }
        public string Apellido
        {
            get { return apellido; }
            set { apellido = value; }
        }
        public string Telefono
        {
            get { return telefono; }
            set { telefono = value; }
        }
        public string Correo
        {
            get { return correo; }
            set { correo = value; }
        }
    }

}



6/18/2024

Practica 1 Guía 4

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.Windows.Forms;

using System.IO;

 

namespace LoginBasico

{

    public partial class Sistema : Form

    {

        static string password;

 

        // Constructor de la clase

        public Sistema()

        {

            InitializeComponent();

        }

 

        // Constructor estático de la clase

        static Sistema()

        {

            // Inicializar la variable password si es necesario

            password = "defaultPassword";

        }

 

        // Método de ejemplo

        public void MetodoEjemplo()

        {

            // Usar la variable password dentro de un método

            Console.WriteLine(password);

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            string usuario = txtuser.Text;

            string contra = txtpass.Text;

            string url = "C:\\PROYECTO FINAL\\WBS012\\LoginBasico\\" + usuario + ".txt"; // Asegúrate que la carpeta exista

 

            if (File.Exists(url)) // verifica que el archivo exista

            {

                MessageBox.Show("ERROR. ¡Usuario ya existe!"); // usuario registrado

                txtuser.Clear(); // limpiamos todos los textbox

                txtpass.Clear();

            }

            else

            {

                File.WriteAllText(url, contra); // Crea un nuevo archivo y guarda la contraseña

                MessageBox.Show("Usuario Registrado con éxito");

 

                txtuser.Clear();

                txtpass.Clear();

            }

        }

 

        private void button1_Click(object sender, EventArgs e)

        {

            string usuario = txtuser.Text; // capturamos los valores de usuario y contraseña

            string contra = txtpass.Text;

            string url = "C:\\PROYECTO FINAL\\WBS012\\LoginBasico\\" + usuario + ".txt";

 

            if (File.Exists(url)) // verifica si existe

            {

                password = File.ReadAllText(url); // lee el texto almacenado dentro del archivo

                if (contra.Equals(password)) // verifica si contraseña es igual al archivo

                {

                    MessageBox.Show("¡Ingreso exitoso, bienvenido!"); // login exitoso

                }

                else

                {

                    MessageBox.Show("¡Contraseña incorrecta!"); // login fallido

                }

            }

            else

            {

                MessageBox.Show("¡Usuario incorrecto!"); // usuario incorrecto

            }

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            Application.Exit();

        }

    }

}

Glosario de Windows

Computadora:  Es un aparato electrónico, capaz de procesar cualquier tipo de información, de forma rápida y eficiente. La cual es presenta...