Autor Tema: Consultar si una Fecha esta entre un Intervalo de fechas - Acces y C#  (Leído 2508 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado AndroideSV

  • Sv Member
  • ***
  • Mensajes: 369
    • AndroideJuradoSV
Hola, les comento lo que quiero hacer

Mediante un dateTimePicker poner una fecha, y mostrar los registros de la base de datos que tengan esa fecha en su intervalo, dicho intevalo es, limite minimo = fecha de ingreso y limite maximo = fecha de salida que ya estan en la BD.

Es decir la fecha ingresada (por el usuario) la tengo que evaluar , que sea mayor que la fecha de Ingreso y menor que la fecha de Salida (estas fechas ya las tengo en mi DB), y mostrar los Datos que cumplan esta condición.
Gracias
https://youtube.com/AndroideJuradoSV
https://t.me/ImportadoresSV

Cougar MX330, Gigabyte H81M, Corsair Vengeance 8GB x1, Core i5 4590, GTX1050TI

Desconectado smog

  • Sv Member
  • ***
  • Mensajes: 122
Re:Consultar si una Fecha esta entre un Intervalo de fechas - Acces y C#
« Respuesta #1 : noviembre 20, 2016, 04:28:22 am »
Seria bueno que pongas lo que se te ha ocurrido hasta ahorita y que resultado te dio por que la verdad asi parece que queres que te hagamos la tarea (sin ofensa)
 pone algo de codigo y te podemos ayudar a decirte si vas bien o corregirte
« Última Modificación: noviembre 20, 2016, 05:33:35 am por smog »

Desconectado AndroideSV

  • Sv Member
  • ***
  • Mensajes: 369
    • AndroideJuradoSV
Re:Consultar si una Fecha esta entre un Intervalo de fechas - Acces y C#
« Respuesta #2 : noviembre 20, 2016, 08:25:33 am »
Seria bueno que pongas lo que se te ha ocurrido hasta ahorita y que resultado te dio por que la verdad asi parece que queres que te hagamos la tarea (sin ofensa)
 pone algo de codigo y te podemos ayudar a decirte si vas bien o corregirte

Jeje si tenés razón, como no se como poner los campos de la tabla después del between se me ocurrió esto.

Como lo he intentado
Lo que yo he hecho es primeramente una consulta para los campos de fecha de entrada y fecha de salida, pero sin enviar parámetros del where

Mientras está leyendo los registros hice otra consulta siempre con la fecha de entrada y salida pero esta vez si puse los parametros,despues del where puse la fecha ingresada, investigue y use between para evaluar si la fecha que ingrese mediante el control esta entre la fecha minima y maxima de todos los campos de mi DB, (en la base de datos esta como fecha/hora los campos de F de Entrada y Salida) y mande como parámetros los campos de Fecha de Ingreso y Salida pero del Reader de la primera consulta.

No me da error la compilación ni durante la ejecución, pero no me muestra los resultados correctos.
Adjunto fotos del código y los resultados.

*También tengo que filtrarlo por tipo pero eso es mas sencillo , primero quiero que funcione lo de las fechas.







Arriba de donde cree el DataTable borré una línea "select.ExecuteNonQuery();" xq si la dejaba me decía que no podía usar más de un Reader, leí que tenía que usar DataTable pero no se como hacerlo , otra info era que agregará unos parámetros a mi conexión , si hacía eso me decía "No se encontró el archivo ISAM instalable."
https://youtube.com/AndroideJuradoSV
https://t.me/ImportadoresSV

Cougar MX330, Gigabyte H81M, Corsair Vengeance 8GB x1, Core i5 4590, GTX1050TI

Desconectado smog

  • Sv Member
  • ***
  • Mensajes: 122
Re:Consultar si una Fecha esta entre un Intervalo de fechas - Acces y C#
« Respuesta #3 : noviembre 20, 2016, 08:56:39 am »
Un detalle a tener  en cuenta es que tu código sql es vulnerable a sql injection por lo que  deberias usar consultas con parametros

de alli  deberias de hacer de una  sola consulta en lugar de iterar con el while
(cada ciclo del while sobreescribis tu dt borrando los resultados anteriores -si los hubiera-)

El siguiente código es hecho a la carrera y obviamente sin probar pero espero te sirva
Código: [Seleccionar]
OleDbDataReader reader;
 using (var cn = new OleDbConnection("la conexion string va aqui"))
            {
                using (var cmd = new OleDbCommand())
                {
                    cmd.Connection = cn;
                    cmd.CommandText =
                      "SELECT  " +
                      " TipoHabitacion, FechaIngreso,FechaSalida from Copia " +
                      "where FechaIngreso <= @fecha and FechaSalida >=@fecha"; // parametro
                    cmd.Parameters.Add("@fecha", OleDbType.Date);
                    cmd.Parameters["@fecha"].Value = DateTime.Now;//Cambiar por tu fecha
                    cn.Open();
                    reader =  cmd.ExecuteReader();
                }
            }
« Última Modificación: noviembre 20, 2016, 11:00:59 am por smog »

Desconectado AndroideSV

  • Sv Member
  • ***
  • Mensajes: 369
    • AndroideJuradoSV
Re:Consultar si una Fecha esta entre un Intervalo de fechas - Acces y C#
« Respuesta #4 : noviembre 20, 2016, 10:55:22 am »
Un detalle a tener  en cuenta es que tu código sql es vulnerable a sql injection por lo que  deberias usar consultas con parametros

de alli la consulta la deberias de hacer deun sólo en lugar de iterar con el while
(cada ciclo del while sobreescribis tu dt borrando los resultados anteriores -si los hubiera-)

El siguiente código es hecho a la carrera y obviamente sin probar pero espero te sirva
Código: [Seleccionar]
OleDbDataReader reader;
 using (var cn = new OleDbConnection("la conexion string va aqui"))
            {
                using (var cmd = new OleDbCommand())
                {
                    cmd.Connection = cn;
                    cmd.CommandText =
                      "SELECT  " +
                      " TipoHabitacion, FechaIngreso,FechaSalida from Copia " +
                      "where FechaIngreso >= @fecha and FechaSalida <=@fecha"; // parametro
                    cmd.Parameters.Add("@fecha", OleDbType.Date);
                    cmd.Parameters["@fecha"].Value = DateTime.Now;//Cambiar por tu fecha
                    cn.Open();
                    reader =  cmd.ExecuteReader();
                }
            }

Me ayudo para entender como agregar el parámetro y que sea de tipo Fecha :D y ya lo puse para el tipo de Habitación seleccionado. Gracias  ohyea:





Resultado
https://youtube.com/AndroideJuradoSV
https://t.me/ImportadoresSV

Cougar MX330, Gigabyte H81M, Corsair Vengeance 8GB x1, Core i5 4590, GTX1050TI

Desconectado ELITE

  • The Communiter-
  • *
  • Mensajes: 6090
  • NEMO ME IMPUNE LACESSIT
Re:Consultar si una Fecha esta entre un Intervalo de fechas - Acces y C#
« Respuesta #5 : noviembre 20, 2016, 11:04:53 am »
A todo esto, porque no usas algo orientado a web Android ??   :huh:

Desconectado AndroideSV

  • Sv Member
  • ***
  • Mensajes: 369
    • AndroideJuradoSV
Re:Consultar si una Fecha esta entre un Intervalo de fechas - Acces y C#
« Respuesta #6 : noviembre 20, 2016, 11:12:56 am »
A todo esto, porque no usas algo orientado a web Android ??   :huh:

Es una tarea :/
https://youtube.com/AndroideJuradoSV
https://t.me/ImportadoresSV

Cougar MX330, Gigabyte H81M, Corsair Vengeance 8GB x1, Core i5 4590, GTX1050TI

Desconectado JCMRACING

  • The Communiter-
  • *
  • Mensajes: 1820
  • vasil team
Re:Consultar si una Fecha esta entre un Intervalo de fechas - Acces y C#
« Respuesta #7 : noviembre 20, 2016, 11:22:02 am »
las tareas de PRN1 de la fia xd
intel corei5 10400f 4.1ghz,MSI pro z490,XPG spectrix RGB ddr4 3600mhz 16gb,RTX 2070S 8GB,CoolerMaster HAF 932 AMD  CORSAIR CX750W,NVME 512GB XPG,HDD 2tb, gamdias chione e1, gamdias achilles e1-l, acer kg1 27p 144hz

Desconectado AndroideSV

  • Sv Member
  • ***
  • Mensajes: 369
    • AndroideJuradoSV
Re:Consultar si una Fecha esta entre un Intervalo de fechas - Acces y C#
« Respuesta #8 : noviembre 20, 2016, 11:26:30 am »
https://youtube.com/AndroideJuradoSV
https://t.me/ImportadoresSV

Cougar MX330, Gigabyte H81M, Corsair Vengeance 8GB x1, Core i5 4590, GTX1050TI