Para este ejemplo usare una lista de tipo clase(personas) para representar los registros y luego obtendremos los registros que sean iguales o mayores a la edad que el usuario especifique usando linq.
El ejemplo esta desarrollado con C# Y VB.Net al final encontraran los proyectos para descargar
Empezaremos agregando una clase a nuestro proyecto Personas.cs Personas.vb y tendrá el siguiente código.
public class Personas { private string nombre; private string apellido; private int edad; //propiedades public string Nombre { get { return nombre;} set { nombre = value; } } public string Apellido { get { return apellido; } set { apellido = value; } } public int Edad { get { return edad; } set { edad = value; } } //constructor public Personas(string nombre, string apellido, int edad) { this.nombre = nombre; this.apellido = apellido; this.edad = edad; } //registros public static List<Personas> Registros() { List<Personas> personas = new List<Personas>(); personas.Add(new Personas("Cristian","Torres",20)); personas.Add(new Personas("Jose", "Alfaro", 18)); personas.Add(new Personas("Briseyda", "Flores", 12)); personas.Add(new Personas("Diana", "Turcios", 17)); personas.Add(new Personas("Miguel", "Fernadez", 40)); personas.Add(new Personas("Pedro", "Perez", 11)); personas.Add(new Personas("Nicole", "Garcia", 20)); return personas; } }
Public Class Personas Private _nombre As String Private _apellido As String Private _edad As Integer 'propiedades Public Property Nombre() As String Get Return _nombre End Get Set(ByVal value As String) _nombre = value End Set End Property Public Property Apellido() As String Get Return _apellido End Get Set(ByVal value As String) _apellido = value End Set End Property Public Property Edad() As Integer Get Return _edad End Get Set(ByVal value As Integer) _edad = value End Set End Property 'constructor Public Sub New(ByVal nombre As String, ByVal apellido As String, ByVal edad As Integer) _nombre = nombre _apellido = apellido _edad = edad End Sub 'registros Public Shared Function Registros() As List(Of Personas) Dim personas As New List(Of Personas)() personas.Add(New Personas("Cristian", "Torres", 20)) personas.Add(New Personas("Jose", "Alfaro", 18)) personas.Add(New Personas("Briseyda", "Flores", 12)) personas.Add(New Personas("Diana", "Turcios", 17)) personas.Add(New Personas("Miguel", "Fernadez", 40)) personas.Add(New Personas("Pedro", "Perez", 11)) personas.Add(New Personas("Nicole", "Garcia", 20)) Return personas End Function End Class
El código es sencillo y fácil de entender lo único que se hace es crear una lista de registros de tipo clase Pesona que son los que utilizaremos para hacer nuestra consulta.
Ahora en nuestro en nuestro formulario tendremos el siguiente código.
public Form1() { InitializeComponent(); CargarList(); } List<Personas> personas; public void CargarList() { personas = Personas.Registros(); } private void Form1_Load(object sender, EventArgs e) { dataGridView1.DataSource = Personas.Registros(); } private void button1_Click(object sender, EventArgs e) { List<Personas> resultados = new List<Personas>(); int edad = Convert.ToInt32(textBox1.Text); var query = personas.Where(p => p.Edad >= edad);//obtener datos sean mayores e iguales a la edad digitada foreach (var result in query) { resultados.Add(result); } dataGridView1.DataSource = resultados; }
Public Sub New() InitializeComponent() CargarList() End Sub Dim pers As List(Of Personas) Public Sub CargarList() pers = Personas.Registros() End Sub Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load DataGridView1.DataSource = Personas.Registros() End Sub Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim resultados As New List(Of Personas) Dim edad As Integer = Convert.ToInt32(TextBox1.Text) Dim query = pers.Where(Function(p) p.Edad >= edad) 'obtener datos sean mayores a la edad digitada For Each result In query resultados.Add(result) Next DataGridView1.DataSource = resultados End Sub
En el código lo que hacemos primeramente es cargar los datos de la lista en el constructor del formulario.Luego en el evento load del formulario cargamos todos los datos de lista en el datagriedview.
Y para hacer el filtro de los datos en el evento click del botón puede verse que lo primero que hacemos es crear una lista de tipo personas llamada resultados que sera la que tendrá todos los registros que cumplan con el filtro que aremos que este caso sera por la edad, hacemos el filtro de nuestros datos usando linq y expresion lambda de la siguiente manera.
var query = personas.Where(p => p.Edad >= edad);
Dim query = pers.Where(Function(p) p.Edad >= edad)Lo que estamos diciendo en esa linea es que obtendremos los registros de las personas donde la edad sea mayor o igual al dato introducido en el textbox.
Y por ultimo lo que hacemos en el código es llenar la lista resultados con los datos obtenidos de nuestra consulta.
Si quieren donarme para una soda lo pueden hacer aqui.
0 Comentarios