domingo, 21 de agosto de 2016

Matriz en C#

Hola ahora haremos una aplicación que lea los contenidos de una matriz de n filas y columnas y calcule e imprima lo siguiente:
-La suma de cada columnas y filas
-La suma de todos los elementos contenidos

Con los numericUpDown  vamos a seleccionar el numero de columnas y renglones una vez hecho eso vamos a introducir nuestros datos desde el dataGridView

Aqui una imagen de ejemplo como ven en el mismo dataGridView mostramos los resultados:

Ejemplo
Aqui el código de la aplicación.
namespace Matriz
{
    public partial class Form1 : Form
    {
        private int[,] matriz;
        private int ren, col;
        public Form1()
        {
            InitializeComponent();
        }

        private void numericUpDown1_ValueChanged(object sender, EventArgs e)
        {
            dataGridView1.RowCount = Convert.ToInt32(numericUpDown1.Value);
        }

        private void numericUpDown2_ValueChanged(object sender, EventArgs e)
        {
            dataGridView1.ColumnCount = Convert.ToInt32(numericUpDown2.Value);
            dataGridView1.Columns[(int)numericUpDown2.Value - 1].Width = 115;
        }

        private void button1_Click(object sender, EventArgs e)
        {
            
            ren = dataGridView1.RowCount;
            col = dataGridView1.ColumnCount;
            matriz = new int[ren, col];

            //Leer Datos
            for (int i = 0; i < ren; i++)
                for (int j = 0; j < col; j++)
                    matriz[i, j] = Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value.ToString());


            //Calcular datos
            if (ren == col)
            {
                //Agregamos una fila y columna para mostrar los calculos en el mismo dataGriView
                double total = Total();
                dataGridView1.Rows.Add();
                SumaColumnas();
                dataGridView1.Columns.Add("", "");
                SumaRenglones();
                dataGridView1[dataGridView1.ColumnCount - 1, dataGridView1.RowCount - 1].Value = "Suma total: " + total.ToString();
                dataGridView1.Columns[dataGridView1.ColumnCount - 1].Width = 115;
            }
            else 
            {
                MessageBox.Show("Para calcular los datos debe contener el mismo numero de renglones y columnas");
            }
        }

        public double Total() 
        {
            double suma = 0;

            for (int i = 0; i < ren ; i++)
            {
                for (int j = 0; j < col; j++)
                {
                    suma += matriz[j, i];
                }            
            } 
            return suma;
         
        }

        public void SumaColumnas()
        {
            double suma = 0;
           
            for (int i = 0; i < dataGridView1.RowCount - 1; i++)
            {
                for (int j = 0; j < dataGridView1.ColumnCount ; j++)
                {
                    suma += matriz[j, i];               
                }
                
                dataGridView1[i, dataGridView1.RowCount -1 ].Value = "Suma Columna " + (i+1) + ": " +suma;
                suma = 0;

            }
        }

        public void SumaRenglones()
        {
            double suma = 0;

            for (int i = 0; i < dataGridView1.RowCount - 1; i++)
            {
                for (int j = 0; j < dataGridView1.Columns.Count  - 1 ; j++)
                {
                    suma += matriz[i, j];
                }

                dataGridView1[dataGridView1.RowCount - 1, i].Value = "Total Fila " + (i + 1) + ": " + suma;
                suma = 0;
            }
        }

        private void button2_Click(object sender, EventArgs e)
        {
            dataGridView1.RowCount = 0;
            dataGridView1.ColumnCount = 0;
        }

        private void button3_Click(object sender, EventArgs e)
        {
            Random random = new Random();
            ren = dataGridView1.RowCount;
            col = dataGridView1.ColumnCount;
            matriz = new int[ren, col];

            for (int i = 0; i < ren; i++)
                for (int j = 0; j < col; j++)
                {
                    matriz[i, j] = random.Next(1, 10);
                    dataGridView1[i, j].Value = matriz[i, j];
                }
        }
    }
}

DEJAR COMENTARIOS!! SUSCRIBIRSE!!!

sábado, 20 de agosto de 2016

Login con procedimientos almacenados en 3 capas.


Hola a todos aqui les dejo un tutorial de como desarrollar un login estilo Google en C# y SQL Server con procedimientos almacenados con la arquitectura 3 capas paso a paso hice algunos videos esta es solo la introducción de como funcionaria nuestro programita en el canal de youtube estan los demas videos de este tutorial.

 

Dejar comentarios y suscribirse al canal de youtube!!!

miércoles, 17 de agosto de 2016

Recorrer datagridview y colorear celdas segun condición en C#

Hola amigos aqui les dejo una sencilla aplicación donde coloreamos ciertas según la condición que pongamos.
Como ejemplo en este programita ponemos 4 calificaciones y la condición que pusimos es que si una calificación es menor que 70 se colorea.
Aqui el código.

   private void button1_Click(object sender, EventArgs e)
   {
            for (int i = 0; i < dataGridView1.RowCount - 1; i++)
            {
                for (int j = 0; j < dataGridView1.ColumnCount; j++)
                {
                    if (Convert.ToInt32(dataGridView1.Rows[i].Cells[j].Value) < 70)
                    {
                        dataGridView1.Rows[i].Cells[j].Style.BackColor = Color.Crimson;
                    }
                }
            } 
    }
Dejar comentarios!!

lunes, 15 de agosto de 2016

Un combobox dependa de otro combobox en C# y SQL Server


Hola amigos hoy vamos hacer que dependiendo de la selección de un item del ComboBox nos obtenga en el otro ComboBox ciertos resultados.

En este ejemplo tengo una lista de estados por defecto para que el usuario escoja uno. En el otro Combobox se va generar la lista de municipios dependiendo del estado seleccionado.

Aqui unas imagenes de ejemplo



















Bueno vamos con el código primero nuestra  base de datos.
create database ComboBox
use ComboBox

create table Estados
(
   id_estado int primary key identity,
   estado varchar(80) not null
)

create table Municipios
(
  id_municipio int primary key identity,
  id_estado int CONSTRAINT fk_Estados FOREIGN KEY (id_estado) REFERENCES Estados(id_estado),
  municipio varchar(80) not null
)


insert into Estados(estado) values('Coahuila')
insert into Estados(estado) values('Nuevo León')
insert into Estados(estado) values('Durango')

insert into Municipios(id_estado,municipio) values(1,'Torreon')
insert into Municipios(id_estado,municipio) values(1,'Abasolo')
insert into Municipios(id_estado,municipio) values(1,'Monclova')

insert into Municipios(id_estado,municipio) values(2,'Monterrey')
insert into Municipios(id_estado,municipio) values(2,'Apodaca')
insert into Municipios(id_estado,municipio) values(2,'Escobedo')

insert into Municipios(id_estado,municipio) values(3,'Gomez Palacio')
insert into Municipios(id_estado,municipio) values(3,'Lerdo')
insert into Municipios(id_estado,municipio) values(3,'Mapimi')

Aqui el código implementado en C#
namespace ComboBox
{
    public partial class Form1 : Form
    {
        //Nuestra conexión 
        SqlConnection conexion = new SqlConnection("Data Source=MISAEL-PC; Initial Catalog = ComboBox; Integrated Security = True");
        
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            //Método que obtiene los estados al iniciar el programa 
            ObtenerEstados();
        }

        public void ObtenerEstados()
        {
            DataSet das = new DataSet();
            SqlDataAdapter adp = new SqlDataAdapter("SELECT * FROM Estados", conexion);
            adp.Fill(das, "Estados");
            comboBox1.DataSource = das.Tables[0].DefaultView;
            comboBox1.DisplayMember = "estado";
            comboBox1.ValueMember = "id_estado";

        }
        //Método que obtiene los estados segun el estado seleccionado
        public void ObtenerMunicipios(int estado)
        {
            DataSet das = new DataSet();
            SqlDataAdapter adp = new SqlDataAdapter("SELECT municipio FROM Municipios WHERE id_estado='" + estado + "'", conexion);
            adp.Fill(das, "Municipios");
            comboBox2.DataSource = das.Tables[0].DefaultView;
            comboBox2.DisplayMember = "municipio";
        }
        
        //Utilizamos el evento SelectionChangeCommitted para cuando se ha cambiado el elemento seleccionado y se confirma el    //cambio de estado en el ComboBox
        private void comboBox1_SelectionChangeCommitted(object sender, EventArgs e)
        {
            ObtenerMunicipios(Convert.ToInt32(comboBox1.SelectedValue));
        }



    }
}