none
Filtrar Gridview por nombre de usuario RRS feed

  • Pregunta

  • Necesito filtrar el siguiente gridview por medio del nombre del usuario o ID.


    Cabe mencionar que el nombre o ID del usuario es de la persona que inicio sesión en la página. Para obtener el ID uso el siguiente codigo:

    Label1.Text = User.Identity.Name;

    La consulta que uso para llenar el grid la tengo en una clase :

    public static List<Archivo> GetAll()
            {
                List<Archivo> lista = new List<Archivo>();

                using (SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["ApplicationServices"].ToString()))
                {
                    conn.Open();

                    string query = @"SELECT Id, UserName, tipo, Nombre, Length  
                                        FROM Archivos";

                    SqlCommand cmd = new SqlCommand(query, conn);

                    SqlDataReader reader = cmd.ExecuteReader();

                    while (reader.Read())
                    {
                        Archivo img = new Archivo(
                                                Convert.ToInt32(reader["Id"]),
                                                Convert.ToString(reader["UserName"]),
                                                Convert.ToString(reader["tipo"]),
                                                Convert.ToString(reader["nombre"]),
                                                Convert.ToInt32(reader["length"]));
                        lista.Add(img);
                    }

                }

                return lista;

            }

    El siguiente procedimiento lo uso en el evento Load de la página:

     
     private void CargarListad()
            {
                GridView1.DataSource = ArchivosDAL.GetAll();
                GridView1.DataBind();
            }

    Muchas gracias y espero me puedan ayudar o dar alguna sugerencia.


    • Editado FranNovato jueves, 21 de mayo de 2015 2:58
    jueves, 21 de mayo de 2015 2:50

Respuestas

  • ya casi lo tenias. Únicamente te hace falta añadir el parámetro a tu consulta

    string query = @"SELECT Id, UserName, tipo, Nombre, Length  FROM Archivos Where Nombre =@nombre";
    
    SqlCommand cmd = new SqlCommand(query, conn);
    cmd.Parameters.AddWithValue("@nombre", nombre);

    crea un metodo que se llame GetAllByName(string nombre) por ejemplo y agregas mis modificaciones.y lo llamas GridView1.DataSource = ArchivosDAL.GetAllByName(Label1.Text);

    lo


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta FranNovato jueves, 21 de mayo de 2015 6:07
    jueves, 21 de mayo de 2015 5:22
    Moderador

Todas las respuestas

  • Filtralo por un textbox y en su propiedad textchanged, utiliza la propiedad defaultview.rowfilter de tu datasource o sino mucho mejor crea un datatable

    private void textBox1_TextChanged(object sender, EventArgs e)
    {

        dt
    .DefaultView.RowFilter = string.Format("idUsuario LIKE '%{0}%'", textBox1.Text);

    }


    • Editado fredsale jueves, 21 de mayo de 2015 3:46
    jueves, 21 de mayo de 2015 3:46
  • ya casi lo tenias. Únicamente te hace falta añadir el parámetro a tu consulta

    string query = @"SELECT Id, UserName, tipo, Nombre, Length  FROM Archivos Where Nombre =@nombre";
    
    SqlCommand cmd = new SqlCommand(query, conn);
    cmd.Parameters.AddWithValue("@nombre", nombre);

    crea un metodo que se llame GetAllByName(string nombre) por ejemplo y agregas mis modificaciones.y lo llamas GridView1.DataSource = ArchivosDAL.GetAllByName(Label1.Text);

    lo


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó, vótala como útil. Saludos

    • Marcado como respuesta FranNovato jueves, 21 de mayo de 2015 6:07
    jueves, 21 de mayo de 2015 5:22
    Moderador