none
"Error de sintaxis en la clausula FROM" RRS feed

  • Pregunta

  • Alguien podría ayudarme, pretendo tomar la id de una tabla de acces y me envía el mensaje de error "Error de sintaxis en la clausula FROM", le dejo el código es de un libro del cual no encuentro donde consultar al autor.

    private int LeerCodigo()
            {
                int codigo = -1;
                string sViaje = "", sOrigen="", sDestino="", sVehiculo="";
                string consulta = "";
                try
                {
                    //Primero obtenemos los datos del elemento seleccionado
                    sViaje = lstViajes.SelectedItem.ToString();
                    sViaje = sViaje.Substring(9);
                    sOrigen = sViaje.Substring(0, sViaje.IndexOf(" a "));
                    sViaje = sViaje.Substring(sViaje.IndexOf(" a ") + 3);
                    sDestino = sViaje.Substring(0, sViaje.IndexOf(" ("));
                    sViaje = sViaje.Substring(sViaje.IndexOf(" (") + 2);
                    sVehiculo = sViaje.Substring(0, sViaje.IndexOf(") "));
                    //Realizamos la consulta
                    consulta = "select * " 
                        + "from viaje" 
                        + "where viaOrigen='" + sOrigen + "'"
                        + "and viaDestino ='" + sDestino + "'"
                        + "and viaVehiculo= '" + sVehiculo + "'";
                    OleDbCommand oleComando = new OleDbCommand(consulta, conBD);
                    OleDbDataReader oleReader = oleComando.ExecuteReader(); 
                    //Leemos el resultado para ver si hay alguno
                    if (oleReader.Read())
                    {
                        //Obtenemos el codigo
                        codigo = Convert.ToInt32(oleReader["ViaId"]);
                    }
                } catch(Exception e)
                {
                    MessageBox.Show("Ocurrio un error " + e);
                }
                return codigo;
            }

    Mucho agradeceré su ayuda

    martes, 16 de octubre de 2018 20:49

Todas las respuestas

  • El error me lo envía en la siguiente línea:

     OleDbDataReader oleReader = oleComando.ExecuteReader(); 

    martes, 16 de octubre de 2018 20:50
  • Sospecho que el problema puede estar en que falta un espacio en blanco de separación entre la palabra viaje y el where que viene a continuación. Aunque lo veas escrito en dos líneas separadas, piensa que al ejecutarse se concatenan todos los strings, por lo que queda todo junto. Pasa lo mismo en las siguientes líneas; la única que está bien es la primera, que sí que tiene un espacio detrás del asterisco.
    • Propuesto como respuesta Enrique AA miércoles, 17 de octubre de 2018 21:13
    martes, 16 de octubre de 2018 20:59
  • Exacto, eso era, muchas gracias amigo Alberto, recibe saludos.

    martes, 16 de octubre de 2018 22:09