SQL command

07/01/2005 - 13:59 por lupcsytar | Informe spam
Hola a todos, de antemano agradezco su ayuda

Qué está mal en esta consulta?

comando = "SELECT 'No Tarjeta' FROM Reportes WHERE 'No Tarjeta' = '3'
AND Fecha = #28/12/2004#";

No Tarjeta es el nombre de la columna en la tabla Reportes de la BD y
cuando busco la información, genero el comando y lo leo:

...
OleDbDataReader reader = comand.ExecuteReader();
while( reader.Read() )
{
string += reader[field].ToString();
temp += "/";
}

field tiene el valor 'No Tarjeta'. Sin embargo, nunca entra a este
ciclo aunque en la tabla efectivamente existe el No Tarjeta 3 con la
fecha 28/12/2004.

Gracias por cualquier ayuda, hasta pronto. Lup.

Preguntas similare

Leer las respuestas

#1 Pedro Luna Montalvo, MVP
07/01/2005 - 15:32 | Informe spam
La comilla simple indica que estas escribiendo una cadena de caracteres, no
un nombre de columna.
Por tanto, en la clausula WHERE lo que se entiende es: cuando la cadena 'No
Tarjeta' sea igual a la tarjeta '3'.

como esto siempre sera falso, es obvio que no traiga nada.

Ojo que el resultado del select, tal y como esta, no es la columna 'No
Tarjeta', sino cadenas de caracteres con el valor 'No Tarjeta'.

Utiliza comillas dobles para indicar los nombres de columnas, o utiliza []


Saludos
Pedro Luna, [MVP VB.NET]
Gye, Ecu

"lup" escribió en el mensaje
news:
Hola a todos, de antemano agradezco su ayuda

Qué está mal en esta consulta?

comando = "SELECT 'No Tarjeta' FROM Reportes WHERE 'No Tarjeta' = '3'
AND Fecha = #28/12/2004#";

No Tarjeta es el nombre de la columna en la tabla Reportes de la BD y
cuando busco la información, genero el comando y lo leo:

...
OleDbDataReader reader = comand.ExecuteReader();
while( reader.Read() )
{
string += reader[field].ToString();
temp += "/";
}

field tiene el valor 'No Tarjeta'. Sin embargo, nunca entra a este
ciclo aunque en la tabla efectivamente existe el No Tarjeta 3 con la
fecha 28/12/2004.

Gracias por cualquier ayuda, hasta pronto. Lup.
Respuesta Responder a este mensaje
#2 Jason
07/01/2005 - 15:37 | Informe spam
No use ese formato de fecha, ya que depende de la configuración regional, use
el formato 'yyyyMMdd HH:mm:ss'.
Es decir puede usar una variable de esta forma:
dim fecha as string = Format(Now, "yyyyMMdd HH:mm:ss").

Y corrigiendo su sentencia SQL, seria:
"SELECT 'No Tarjeta' FROM Reportes WHERE 'No Tarjeta' = '3' AND Fecha =
'20041228'";

Espero que le sea util, Jason


"lup" escribió:

Hola a todos, de antemano agradezco su ayuda

Qué está mal en esta consulta?

comando = "SELECT 'No Tarjeta' FROM Reportes WHERE 'No Tarjeta' = '3'
AND Fecha = #28/12/2004#";

No Tarjeta es el nombre de la columna en la tabla Reportes de la BD y
cuando busco la información, genero el comando y lo leo:


OleDbDataReader reader = comand.ExecuteReader();
while( reader.Read() )
{
string += reader[field].ToString();
temp += "/";
}

field tiene el valor 'No Tarjeta'. Sin embargo, nunca entra a este
ciclo aunque en la tabla efectivamente existe el No Tarjeta 3 con la
fecha 28/12/2004.

Gracias por cualquier ayuda, hasta pronto. Lup.

Respuesta Responder a este mensaje
#3 Carlos Durán Urenda
10/01/2005 - 17:37 | Informe spam
como que falta el campo fecha en la instruccion SELECT no?

"SELECT 'No Tarjeta', [Fecha] FROM Reportes WHERE 'No Tarjeta' = '3'
AND Fecha = #28/12/2004#";


Saludos


"lup" escribió en el mensaje
news:
Hola a todos, de antemano agradezco su ayuda

Qué está mal en esta consulta?

comando = "SELECT 'No Tarjeta' FROM Reportes WHERE 'No Tarjeta' = '3'
AND Fecha = #28/12/2004#";

No Tarjeta es el nombre de la columna en la tabla Reportes de la BD y
cuando busco la información, genero el comando y lo leo:

...
OleDbDataReader reader = comand.ExecuteReader();
while( reader.Read() )
{
string += reader[field].ToString();
temp += "/";
}

field tiene el valor 'No Tarjeta'. Sin embargo, nunca entra a este
ciclo aunque en la tabla efectivamente existe el No Tarjeta 3 con la
fecha 28/12/2004.

Gracias por cualquier ayuda, hasta pronto. Lup.
Respuesta Responder a este mensaje
#4 AZB
25/01/2005 - 21:05 | Informe spam
Lup: me parece que el error esta al poner el nombre del campo No tarjeta
entre comillas simples. Si las pones para evitar el corte de palabras por el
espacio deberias probar con los corchetes, de esta forma te va a funcionar y
te quedaria asi:

comando = "SELECT [No Tarjeta] FROM Reportes WHERE [No Tarjeta] = '3' AND
Fecha = #28/12/2004#";

Tambien deberias tener cuidado con el formato de fecha ya que como tambien
te han respondido, depende del formato regional y de como tengas configurado
el motor de base de datos, no obstante es mejor trabajar con formatos
internacionales como yyyy-MM-dd HH:mm

SAlu2

AZB



"lup" escribió en el mensaje
news:
Hola a todos, de antemano agradezco su ayuda

Qué está mal en esta consulta?

comando = "SELECT 'No Tarjeta' FROM Reportes WHERE 'No Tarjeta' = '3'
AND Fecha = #28/12/2004#";

No Tarjeta es el nombre de la columna en la tabla Reportes de la BD y
cuando busco la información, genero el comando y lo leo:

...
OleDbDataReader reader = comand.ExecuteReader();
while( reader.Read() )
{
string += reader[field].ToString();
temp += "/";
}

field tiene el valor 'No Tarjeta'. Sin embargo, nunca entra a este
ciclo aunque en la tabla efectivamente existe el No Tarjeta 3 con la
fecha 28/12/2004.

Gracias por cualquier ayuda, hasta pronto. Lup.
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida