none
No funciona consulta OleDB añadiendole parametros RRS feed

  • Pregunta

  • string query = "SELECT DISTINCT Instalaciones FROM Gmao WHERE Instalaciones LIKE @param";
                    OleDbCommand cmd = new OleDbCommand(query, conexion);
                    cmd.Parameters.AddWithValue("@param", buscar);
                    OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); string fila = listBox1.SelectedValue.ToString();
                    string query = "SELECT DISTINCT AFOs FROM Gmao WHERE Instalaciones = @param1";
                    OleDbCommand cmd = new OleDbCommand(query, conexion);
                    cmd.Parameters.AddWithValue("@param1", fila);
                    OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                    adapter.Fill(dt2); 
    string fila = listBox1.SelectedValue.ToString();
                    string fila1 = listBox2.SelectedValue.ToString();
                    string query = "SELECT DISTINCT Tecnologias FROM Gmao WHERE Instalaciones = @param1 and AFOs = @param2";
                    OleDbCommand cmd = new OleDbCommand(query, conexion);
                    cmd.Parameters.AddWithValue("@param1", fila);
                    cmd.Parameters.AddWithValue("@param2", fila1);
                    OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                    adapter.Fill(dt3);
    No funcionan las consultas añadiendole parametros.
    miércoles, 3 de febrero de 2016 10:39

Todas las respuestas

  • Veo que tienes muchas consultas. Te pongo como sería la primera:

    string query = "SELECT DISTINCT Instalaciones FROM Gmao WHERE Instalaciones LIKE ?";
    
    OleDbCommand cmd = new OleDbCommand(query, conexion);
    OleDbCommand.Parameters.Add("@param", OleDbType.Integer);   << Aquí debes indicar el tipo de dato
    OleDbCommand.Parameters["@param"].Value = buscar;
    
    OleDbDataAdapter adapter = new OleDbDataAdapter(cmd); 


    Saludos, Javier J

    miércoles, 3 de febrero de 2016 10:59
  • string query = "SELECT DISTINCT Tecnologias FROM Gmao WHERE Tecnologias LIKE @param";
                    OleDbCommand cmd = new OleDbCommand(query, conexion);
                    cmd.Parameters.Add("@param", OleDbType.VarChar);
                    cmd.Parameters["@param"].Value = buscar;
                    OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                    adapter.Fill(dt1);

    Asi no funciona. Despues del LIKE como se pone el paramentro @param?
    miércoles, 3 de febrero de 2016 11:06
  • Debes poner un signo de interrogación

    string query = "SELECT DISTINCT Instalaciones FROM Gmao WHERE Instalaciones LIKE ?";


    Saludos, Javier J

    miércoles, 3 de febrero de 2016 17:11
  • >>Asi no funciona. Despues del LIKE como se pone el paramentro @param?

    no uses el LIKE sino vas a indicar ningun comodin

    string query = "SELECT DISTINCT Tecnologias FROM Gmao WHERE Tecnologias LIKE @param + '%'";

    el like busca por aproximacion, si es una busqueda exacta usa el igual


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 3 de febrero de 2016 17:53
  • En realidad, para que te funcione y como te he comentado en tu otro post, debes hacer tanto lo que te comenta Javier (utilizar ? como marcador de posición) como Leandro (añadir los caracteres comodín). Pero tratándose de Access (y si no recuerdo mal los caracteres comodín que deberías utilizar son asteriscos *):

    string query = "SELECT DISTINCT Tecnologias FROM Gmao WHERE Tecnologias LIKE ?";
                    OleDbCommand cmd = new OleDbCommand(query, conexion);
                    cmd.Parameters.Add("@param", OleDbType.VarChar);
                    cmd.Parameters["@param"].Value = string.Format("*{0}*", buscar);
                    OleDbDataAdapter adapter = new OleDbDataAdapter(cmd);
                    adapter.Fill(dt1);


    Píldoras .NET
    Artículos, tutoriales y ejemplos de código .NET

    Píldoras JS
    Artículos, tutoriales y ejemplos de código JavaScript, HTML5, CSS3, ...

    miércoles, 3 de febrero de 2016 18:27
  • Muchas gracias por vuestros esfuerzos pero con parametros no consigo. He probado con = con LIKE (Es lo que me hace falta), con *, con asteriscos...y nada. Lo he vuelto a poner sin parametros y funciona a la primera.

    Un saludo

    jueves, 4 de febrero de 2016 6:35