Compartir a través de


Cómo: Filtrar los resultados de la consulta mediante LINQ (Visual Basic)

Language-Integrated Consulta (LINQ) facilita el acceso a la información de la base de datos y la ejecución de consultas.

En el ejemplo siguiente se muestra cómo crear una nueva aplicación que realiza consultas en una base de datos de SQL Server y filtra los resultados por un valor determinado mediante la cláusula Where. Para obtener más información, vea cláusula Where.

En los ejemplos de este artículo se usa la base de datos de ejemplo Northwind. Para obtener la base de datos, consulte Descarga de bases de datos de ejemplo.

Nota

El equipo puede mostrar nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio en las instrucciones siguientes. La edición de Visual Studio que tiene y la configuración que usa determinan estos elementos. Para obtener más información, consulte Personalizando el IDE.

Para crear una conexión a una base de datos

  1. En Visual Studio, abra Explorador de servidores/Explorador de bases de datos haciendo clic en Explorador de servidores/Explorador de bases de datos en el menú ver .

  2. Haga clic con el botón derecho en Conexiones de datos en Explorador de Servidores/Explorador de Bases de Datos y, a continuación, haga clic en Agregar conexión.

  3. Especifique una conexión válida a la base de datos de ejemplo Northwind.

Para agregar un proyecto que contiene un archivo LINQ to SQL

  1. En el menú Archivo de Visual Studio, apunte a Nuevo y haga clic en Proyecto. Seleccione Visual Basic Aplicación de Windows Forms como tipo de proyecto.

  2. En el menú Proyecto , haga clic en Agregar nuevo elemento. Seleccione la plantilla de elemento Clases de LINQ to SQL.

  3. Asigne al archivo el nombre northwind.dbml. Haga clic en Agregar. El Diseñador relacional de objetos (O/R Designer) se abre para el archivo northwind.dbml.

Para agregar tablas a la consulta al Diseñador de O/R

  1. En Explorador de servidores/Explorador de bases de datos, expanda la conexión a la base de datos Northwind. Expanda la carpeta Tablas .

    Si ha cerrado el Diseñador de O/R, puede volver a abrirlo haciendo doble clic en el archivo northwind.dbml que agregó anteriormente.

  2. Haga clic en la tabla Clientes y arrástrela al panel izquierdo del diseñador. Haga clic en la tabla Pedidos y arrástrela al panel izquierdo del diseñador.

    El diseñador crea nuevos objetos Customer y Order para el proyecto. Observe que el diseñador detecta automáticamente las relaciones entre las tablas y crea propiedades secundarias para objetos relacionados. Por ejemplo, IntelliSense mostrará que el objeto Customer tiene una propiedad Orders para todos los pedidos relacionados con ese cliente.

  3. Guarda los cambios y cierra el diseñador.

  4. Guarde el proyecto.

Para agregar código para consultar la base de datos y mostrar los resultados

  1. En el Cuadro de herramientas , arrastre un control DataGridView al formulario predeterminado de Windows para su proyecto, Form1.

  2. Haga doble clic en Form1 para agregar código al evento Load del formulario.

  3. Al agregar tablas al Diseñador de O/R, el diseñador agregó un objeto DataContext para el proyecto. Este objeto contiene el código que debe tener para tener acceso a esas tablas, además de objetos y colecciones individuales para cada tabla. El objeto DataContext del proyecto se denomina en función del nombre del archivo .dbml. Para este proyecto, el objeto DataContext se denomina northwindDataContext.

    Puede crear una instancia del DataContext en el código y consultar las tablas especificadas por el Diseñador de O/R.

    Agregue el código siguiente al evento Load para consultar las tablas que se exponen como propiedades del contexto de datos. La consulta filtra los resultados y devuelve solo los clientes que se encuentran en London.

    Dim db As New northwindDataContext
    
    Dim customers_London = From cust In db.Customers
                           Where cust.City = "London"
                           Select cust.CustomerID, cust.CompanyName,
                                  OrderCount = cust.Orders.Count,
                                  cust.City, cust.Country
    
    DataGridView1.DataSource = customers_London
    
  4. Presione F5 para ejecutar el proyecto y ver los resultados.

  5. A continuación se muestran algunos otros filtros que puede probar.

    Dim companies_H = From cust In db.Customers
                      Where cust.Orders.Count > 0 And
                            cust.CompanyName.StartsWith("H")
                      Select cust.CustomerID, cust.CompanyName,
                             OrderCount = cust.Orders.Count,
                             cust.Country
    
    Dim customers_USA = From cust In db.Customers
                        Where cust.Orders.Count > 15 And
                              cust.Country = "USA"
                        Select cust.CustomerID, cust.CompanyName,
                               OrderCount = cust.Orders.Count,
                               cust.Country
    

Consulte también