none
¿Como puedo hacer esta consulta multiple con dropdownlist? RRS feed

  • Pregunta

  • Hola compañeros, estoy trabajando en un proyecto en donde utilizo 2 listas desplegables para filtrar datos en una tabla. (osea que son 2 columnas)

    La pregunta que tengo es, ¿que tipo de condición o como debe de hacerse correctamente? para que cuando seleccione solo uno me filtre y arroje datos (de una sola columna), pero cuando selecciono ambos debe de hacer lo mismo, pero con dichas coincidencias (entre las 2 columnas).

    Por ahora el código que llevo cumple con la primera función, pero con la segunda no se como debe de hacerse a decir verdad, me hacen mención de que utilice parámetros pero sigo sin encontrar algún ejemplo para que pueda entenderle.

    protected void Dropdownlist_SelectedIndexChanged(object sender, EventArgs e)
        {

            //Devuelve los datos de una columna especifica en GridView, que sea igual al ItemList seleccionado.
            {
                using (SqlConnection sqlCon = new SqlConnection(connectionString))
                {


                    sqlCon.Open();
                    string SQLTable;
                    SQLTable = "SELECT  * FROM Hotel";
                    SQLTable += "WHERE Empleados='" + Empleados.SelectedItem.Value + "'";
                    SQLTable += "  OR Area='" + Areas.SelectedItem.Value + "'";


                    SqlDataAdapter sqlDa = new SqlDataAdapter(SQLTable, sqlCon);
                    DataTable dtbl = new DataTable();
                    sqlDa.Fill(dtbl);
                    GridView1.DataSource = dtbl;
                    GridView1.DataBind();
                    sqlCon.Close();
                }
            }

        }

                                                    

    sábado, 28 de julio de 2018 15:50

Todas las respuestas

  • hola

    Entiendo que al cambiar la opcion en el dropdownlist se ejecuta el evento en el servidor, no? sino lo hace revisa que hayas asignado la propiedad AutoPostBack = true

    Ahora bien el tema del parametro imaguino es en la query, algo como esto

    sqlCon.Open();
    
    string SQLTable = @"SELECT * FROM Hotel
    					WHERE Empleados= @empleado OR Area= @area";
    
    
    SqlCommand cmd = new SqlCommand(SQLTable, sqlCon);
    cmd.Parameters.AddWithValue("@empleado", Empleados.SelectedItem.Value);
    cmd.Parameters.AddWithValue("@area", Areas.SelectedItem.Value);
    
    SqlDataAdapter sqlDa = new SqlDataAdapter(cmd);
    DataTable dtbl = new DataTable();
    sqlDa.Fill(dtbl);

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    lunes, 30 de julio de 2018 3:47