Visual Basic.NET - Error de fecha en vista

   
Vista:

Error de fecha en vista

Publicado por Pamela (1 intervención) el 14/07/2009 21:33:35
Tengo problemas al hacer una busqueda entre un rango de fechas en Windows Vista, solo en este SO ya uqe en XP el rango de fecha que el usuario ingresa lo muestra sin problemas, ya e probado cambiando varias formas de traer la fecha pero no hay caso y me fije en la configuracion regional del vista y no veo nada distinto al XP uso SQL Express 2005 y el campo fecha lo tengo como datetime y la consulta que hago desde visual basic 2005 es esta, el usuario ingresa los rangos de fechas en los maskedTextBox:

Dim SQL as String
Dim fDesde, fHasta As DateTime

fDesde = mkDesde.Text
fHasta = mkHasta.Text

SQL = "select NroMov,Fecha,Comprobante,NroComp,Entrada,Salida,Saldo,PUnit[Precio U.],PTotal[Total]," _
& "DA.CodDetArt,A.Descripcion,DA.Detalle,Marca from Articulos A,MovArt M,DetalleArticulo DA " _
& "left join Marcas on (Marcas.CodMarca=DA.CodMarca) where DA.CodArt=A.CodArt and " _
& "DA.CodDetArt=M.CodDetArt and M.CodDetArt=" & Val(txtCod.Text) & " and Fecha Between '" & _
fDesde.ToString("dd/MM/yyyy") & "' and '" & _
fHasta.ToString("dd/MM/yyyy") & "' order by Fecha desc"

El error que me tira en Vista es algo asi ya que es mas largo:
System.Data.SqlClient.SqlException: The conversion of a char data type to a datetime data type resulted in an out-of-range datetime value
..............
............
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Error de fecha en vista

Publicado por Damian (49 intervenciones) el 16/07/2009 21:57:35
Yo te diria que pongas en las masktextbox la conversion a la fecha ya que esta lo maneja como string, o sea quedaria asi:

fDesde = Convert.ToDateTime(mkDesde.Text)
fHasta = Convert.ToDateTime(mkHasta.Text)

Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Error de fecha en vista

Publicado por Cesar (4 intervenciones) el 20/07/2009 21:28:46
Damian:

Otra forma de hacerlo sería hacer un convert como lo que siguie:

convert(varchar(8),Fecha Between,112) '" & _
convert(varchar(8),fDesde,112) & "' and '" & _
convert(varchar(8),fHasta,112) & "' order by Fecha desc"

esto hace que el formato (112) de todos los campos sea 'AAAAMMDD''

puedes correr el siguiente select en una consulta de SQL, para comprobarlo

select convert(varchar(8),getdate(),112)

Saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar