Comparar una variable con un campo de una BD Sql

22/06/2004 - 22:26 por markos | Informe spam
Hola chicos, soy markos y mi problema es el sig.: lo que
pasa es que el usuario ingresa un mes y un año (ej.
11/2003), los cuales yo capturo en dos variables FEC_INI
(al que le asigno el dia 01) y FEC_TER (al que le asigno
el dia 31, según el mes), en la BD solo existe un campo
de fecha (Fecha_Consulta ej. 05/07/2001), la consulta por
parte del cliente consiste en listar en el DataGrid todas
las consultas realizadas durante mes y año Ingresado
(todas las consultas hechas el 11/2003). Aparte el
usuario ingresa otros parametros para generar el listado
(los que ya he validado). Es por esto que la primera
condición para listar es la fecha, por lo que esta
instruccióm debe esta condicionada.

La instrucción que utilizo es la sig.:

DataSet ds=cmd.ExecuteReader()

me genera un error (error en tiempo de ejecución).

También probe la sentencia:

string strcmd= "SELECT * FROM nombre_tabla WHERE
fecha_Consulta>=@fecha1 AND fecha_Consulta<=@fecha2"

de la sig. forma:

Dim Sel As String
Sel = "SELECT TOP 50 ID, Fecha_Consulta, Fecha_Respuesta,
Rut_Solicitado, Empresa_Consulta FROM
Consultas_Efectuadas WHERE (Fecha_Consulta >= @Fec_Ini)
AND (Fecha_Consulta <= @Fec_Ter)"
Cmn = New SqlCommand(Sel, Cntn)
Cmn.Parameters.Add("@Fec_Ini", Fec_Ini)
Cmn.Parameters.Add("@Fec_Ter", Fec_Ter)
Cntn.Open()

Cmn = SqlCommand
Cntn = SqlConnection

Pero para desplegar los valores en la Grilla ocupo:

Dad_Todas.Fill(Dst)
DG_01.DataSource = Dst
DG_01.DataBind()
DG_01.Visible = True
Cntn.Close()

Dad_Todas = SqlDataAdapter
DG_01 = DataGrid
Dst = DataSet

Lo cual me resulta perfectamente, sin poder realizar esto
para la Mald... Fecha.

Esperando cualquier ayuda, y agradeciendola de antemano
me despido

saludos Markos Chau
 

Leer las respuestas

#1 Sashka
23/06/2004 - 02:04 | Informe spam
No entiendo muy bien el problema... pero me imagino que será que los
parametros en el sql tienen tipo Date... y por ejemplo 31/2/2004 no es una
fecha válida...
podrías hacer las comparaciones con el mes y año del campo...

Where month(fecha_Consulta) = @mes and year(fecha_Consulta)=@elyear

Sashka
MS MVP Access

"markos" escribió en el mensaje
news:2001c01c45897$228c9100$
Hola chicos, soy markos y mi problema es el sig.: lo que
pasa es que el usuario ingresa un mes y un año (ej.
11/2003), los cuales yo capturo en dos variables FEC_INI
(al que le asigno el dia 01) y FEC_TER (al que le asigno
el dia 31, según el mes), en la BD solo existe un campo
de fecha (Fecha_Consulta ej. 05/07/2001), la consulta por
parte del cliente consiste en listar en el DataGrid todas
las consultas realizadas durante mes y año Ingresado
(todas las consultas hechas el 11/2003). Aparte el
usuario ingresa otros parametros para generar el listado
(los que ya he validado). Es por esto que la primera
condición para listar es la fecha, por lo que esta
instruccióm debe esta condicionada.

La instrucción que utilizo es la sig.:

DataSet ds=cmd.ExecuteReader()

me genera un error (error en tiempo de ejecución).

También probe la sentencia:

string strcmd= "SELECT * FROM nombre_tabla WHERE
fecha_Consulta>=@fecha1 AND fecha_Consulta<=@fecha2"

de la sig. forma:

Dim Sel As String
Sel = "SELECT TOP 50 ID, Fecha_Consulta, Fecha_Respuesta,
Rut_Solicitado, Empresa_Consulta FROM
Consultas_Efectuadas WHERE (Fecha_Consulta >= @Fec_Ini)
AND (Fecha_Consulta <= @Fec_Ter)"
Cmn = New SqlCommand(Sel, Cntn)
Cmn.Parameters.Add("@Fec_Ini", Fec_Ini)
Cmn.Parameters.Add("@Fec_Ter", Fec_Ter)
Cntn.Open()

Cmn = SqlCommand
Cntn = SqlConnection

Pero para desplegar los valores en la Grilla ocupo:

Dad_Todas.Fill(Dst)
DG_01.DataSource = Dst
DG_01.DataBind()
DG_01.Visible = True
Cntn.Close()

Dad_Todas = SqlDataAdapter
DG_01 = DataGrid
Dst = DataSet

Lo cual me resulta perfectamente, sin poder realizar esto
para la Mald... Fecha.

Esperando cualquier ayuda, y agradeciendola de antemano
me despido

saludos Markos Chau

Preguntas similares