none
como validar la fecha actual en los valores de una lista generada por medio de una columna en una tabla de SQL Server RRS feed

  • Pregunta

  • hola!

    que tal, me complaceria muchisimo que me pudiera alguien brindar ayuda..

    en mi proyecto de estadia necesito que al inicializar  el primer Form emita una notificaion si es necesario realizar algun servicio...
    para ello tengo una tabla de "Servicios Realizados" con una columa llamada Nueva_Programación; la cual es llenada con una fecha futura en la cual se desea realizar nuevamente el servicio...

    para ello mi propósito es extraer en una lista la columna Nueva_Programación y validar sus valores, y si existe alguna fecha con el día actual, que emerja un mensaje dando alerta de que es necesario realisar el servicio.

    este es mi codigo para extraer los valores de la columna Nueva_Programacion:
    public static List<pMRealizados> ObtenerMRealizadosNotificacion()
            {
                List<pMRealizados> Lista = new List<pMRealizados>();
                SqlConnection Conn = PruebaConexion.ObtenerConexion();
    
                SqlCommand Comando = new SqlCommand("select id_ MRealizado, Nueva_Programacion from Mantenimiento", Conn);
                SqlDataReader Reader = Comando.ExecuteReader();
                while (Reader.Read())
                {
                    pMRealizados pMRealizados = new pMRealizados();
                    pMRealizados.Id_MRealizado = Reader.GetInt32(0);
                    pMRealizados.Nueva_Programacion = Convert.ToString(Reader.GetDateTime(1));
    
                    Lista.Add(pMRealizados);
                }
                return Lista;
            }

    lunes, 20 de noviembre de 2017 22:58

Respuestas

  • Hola Adrián López AL,

    Con base a tu consulta, te recomiendo lo siguiente:

    cada vez que creas funciones y utilizas procedimientos almacenados, siempre tienes que colocar cn.open() y cn.close()  y en la parte de:

                    pMRealizados pMRealizados = new pMRealizados();
                    pMRealizados
    .Id_MRealizado = Reader.GetInt32(0);
                    pMRealizados
    .Nueva_Programacion = Convert.ToString(Reader.GetDateTime(1));

    utilizar using  por lo tanto quedando de la siguiente manera:

    using pMRealiados{

        .Id_MRealizado = Reader.GetInt32(0);

        .Nueva_Programacion = Convert.ToString(Reader.GetDateTime(1));

    }

    esto te ayudará  a que la función se ejecuta de manera correcta y el tiempo de respuesta sea más rápido.

    Quedamos al pendiente de cualquier actualización de tu parte.

    Saludos Cordiales.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
    _____
     
    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
     
    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.
     
    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.


    martes, 21 de noviembre de 2017 17:55
    Moderador

Todas las respuestas

  • ¿Qué problema te da? El único inconveniente que observo así a ojo es que se ta ha olvidado el Conn.Open(), y que no has metido los "using" para que se cierren el datareader y la conexion. Aparte de eso, y suponiendo que los tipos de pMRealizados concuerden correctamente con los que les asignas, debería funcionar correctamente.

    Por cierto, podrías optimizarlo un poco poniendo en la Select un Where que filtre los registros, devolviendo únicamente los que quedan dentro del rango que quieres examinar (por ejemplo, si vas a mostrar los servicios futuros, puedes poner en el Where una condición para que no se devuelvan las fechas ya pasadas).

    martes, 21 de noviembre de 2017 16:50
    Moderador
  • Hola Adrián López AL,

    Con base a tu consulta, te recomiendo lo siguiente:

    cada vez que creas funciones y utilizas procedimientos almacenados, siempre tienes que colocar cn.open() y cn.close()  y en la parte de:

                    pMRealizados pMRealizados = new pMRealizados();
                    pMRealizados
    .Id_MRealizado = Reader.GetInt32(0);
                    pMRealizados
    .Nueva_Programacion = Convert.ToString(Reader.GetDateTime(1));

    utilizar using  por lo tanto quedando de la siguiente manera:

    using pMRealiados{

        .Id_MRealizado = Reader.GetInt32(0);

        .Nueva_Programacion = Convert.ToString(Reader.GetDateTime(1));

    }

    esto te ayudará  a que la función se ejecuta de manera correcta y el tiempo de respuesta sea más rápido.

    Quedamos al pendiente de cualquier actualización de tu parte.

    Saludos Cordiales.

    Gracias por usar los foros de MSDN.

    Pablo Rubio
    _____
     
    Por favor recuerde "Marcar como respuesta" las respuestas que hayan resuelto su problema, es una forma común de reconocer a aquellos que han ayudado, y hace que sea más fácil para los otros visitantes encontrar la solución más tarde.
     
    Microsoft ofrece este servicio de forma gratuita, con la finalidad de ayudar a los usuarios y la ampliación de la base de datos de conocimientos relacionados con los productos y tecnologías de Microsoft.
     
    Este contenido es proporcionado "tal cual" y no implica ninguna responsabilidad de parte de Microsoft.


    martes, 21 de noviembre de 2017 17:55
    Moderador