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.
 

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.

Preguntas similares