none
Filtro por rango de Fechas RRS feed

  • Pregunta

  •  Private Sub filtrar_fechas()
            Try
                Using con As New SqlConnection("data source=(local);initial catalog=DatosInventario;integrated security=true")
                    Dim query = "SELECT * FROM Entradas WHERE FECHA_INGRESO between @fecha1 and @fecha2 " &
                                "SELECT * FROM Salidas WHERE FECHA_SALIDA between @fecha1 and @fecha2"
    
                    Dim da As New SqlDataAdapter(query, con)
                    da.SelectCommand.Parameters.AddWithValue("@fecha1",
                                        fecha_inicio.Value.ToShortDateString)
                    da.SelectCommand.Parameters.AddWithValue("@fecha2",
                                        fecha_termino.Value.ToShortDateString)
    
                    Dim ds As New DataSet
                    da.Fill(ds)
    
                    Entradas.DataSource = ds.Tables(0) 'query1
                    Salidas.DataSource = ds.Tables(1) 'query2
    
                End Using
            Catch ex As Exception
                MessageBox.Show(ex.Message)
            End Try
        End Sub

    Tengo un form como el que esta en la imagen, en el cual filtro por un rango de fechas con el código adjunto, como se ve en la primera parte de la imagen filtro entre la fecha 18/10/2016 hasta el 18/10/2016 y si realiza el filtro, pero al aumentar el rango de la fecha de termino hasta 19/10/2016 como se ve en la segunda parte de la imagen no realiza el filtro, porque sucede esto ? el campo de las fechas en la base de datos es de tipo Date.

    Estaría muy agradecido, quedo atento a sus comentarios y ayudas. 

    • Cambiado Enrique M. Montejo viernes, 21 de abril de 2017 7:22 Pregunta relacionada con el acceso a datos con SQL Server.
    lunes, 17 de abril de 2017 7:00

Todas las respuestas

  • Se me ocurre que puede ser que tengas cambiados los datetimepicker, es decir que el que has llamado fecha_inicio en realidad tenga la fecha_termino y viceversa. Esto haría que buscases desde el 19/10 hasta el 18/10 y por eso no saldría ningún resultado.

    Si no es eso, sigue la ejecución con el debugger, para en la línea antes del Fill, y usa el debugger para examinar la sentencia y los parámetros dentro del SelectCommand, a ver si está llegando lo que esperas que llegue.

    Si eso tampoco resuelve la duda, activa el Profiler en SQL Server y captura la sentencia que le está llegando. Después cópiala y pégala en SSMS y ejecútala desde ahí, a ver qué resultados arroja.

    • Propuesto como respuesta Joyce_AC lunes, 17 de abril de 2017 15:05
    lunes, 17 de abril de 2017 7:40
  • Hola 

    Veo que estas llenado 2 datagriviews y en lo que muestras tienes 4¿? estás seguro que estás llenado los 4 controles? de lo contrario has un debug pero por lo que veo solo le mandas a dos, incluso la fecha de salida se ve en el segundo

      Entradas.DataSource = ds.Tables(0) 'query1
      Salidas.DataSource = ds.Tables(1) 'query2

    Saludos


    Si ayudé a resolver tu consulta, no olvides marcar como respuesta y/o votar como útil.

    lunes, 17 de abril de 2017 14:37