예제 #1
0
        public void AtenderPaciente(int especialidadDoc, DataGridView dtg)
        {
            string querySelect = "select IdPacienteCita As  [Tarjeta del Paciente], Nombre, Apellido, Convert(date,FechaCita) As [Fecha de Cita] , Prioridad" +
                                 " From Cita cit " +
                                 " Inner Join Pacientes pa " +
                                 " ON pa.IdPaciente = cit.IdPacienteCita " +
                                 " where Especialidad = " + especialidadDoc +
                                 " and FechaCita = Convert(date,getdate())";
            string queryCantidad = " select( select count (*)  From Cita cit Inner Join Pacientes pa " +
                                   " ON pa.IdPaciente= cit.IdPacienteCita " +
                                   " where Especialidad = " + especialidadDoc + ") as [Cantidad]";
            ConexionSqlServer cn = new ConexionSqlServer();

            try
            {
                cn.abrir();
                SqlCommand cmSelect = new SqlCommand(queryCantidad, cn.conexion);
                int        cantidad = Convert.ToInt32(cmSelect.ExecuteScalar());//se tiene la cantidad de datos que deberá tener el monticulo
                cn.cerrar();


                cn.abrir();
                SqlCommand    cmPacientes = new SqlCommand(querySelect, cn.conexion);
                SqlDataReader reader      = cmPacientes.ExecuteReader();

                Paciente[] pacien;
                pacien = new Paciente[cantidad];


                Heap heap     = new Heap(cantidad);
                int  iterador = 0;

                while (reader.Read())
                {
                    Paciente pa = new Paciente();
                    pa.TarjetaPaciente = Convert.ToString(reader["Tarjeta del Paciente"]);
                    pa.Nombre          = Convert.ToString(reader["Nombre"]);
                    pa.Apellido        = Convert.ToString(reader["Apellido"]);
                    pa.FechaCita       = Convert.ToString(reader["Fecha de Cita"]);
                    pa.Prioridad       = Convert.ToInt32(reader["Prioridad"]);
                    pacien[iterador]   = pa;
                    heap.Insertar(pacien[iterador]);
                    MessageBox.Show(pacien[iterador].Nombre.ToString());
                    iterador++;
                }

                cn.cerrar();
                List <Paciente> ordenado = new List <Paciente>();

                for (int i = 0; i < iterador; i++)
                {
                    ordenado.Add(heap.BorrarMin());
                }
                dtg.DataSource = ordenado;
            }
            catch (Exception)
            {
                cn.cerrar();
                MessageBox.Show("No se puede conectar a la base de datos");
            }
            finally { cn.cerrar(); }
        }