Compartir a través de


Cómo: Hacer el recuento, la suma o el promedio de datos usando LINQ (Visual Basic)

Language-Integrated Query (LINQ) simplifica el acceso a la información de las bases 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. En el ejemplo se realizan recuentos, sumas y se calcula el promedio de los resultados mediante las cláusulas Aggregate y Group By. Para obtener más información, vea Aggregate (Cláusula, Visual Basic) y Group By (Cláusula, Visual Basic).

En los ejemplos de este tema se usa la base de datos de ejemplo Northwind. Si no tiene instalada la base de datos de ejemplo Northwind en el equipo de desarrollo, puede descargarla desde el sitio web del Centro de descarga de Microsoft. Para obtener instrucciones, vea Descargar bases de datos de ejemplo (LINQ to SQL).

Nota

Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio.

Para crear una conexión a una base de datos

  1. En Visual Studio, haga clic en Explorador de servidores/Explorador de bases de datos en el menú Ver para abrir el Explorador de servidores/Explorador de bases de datos.

  2. En el Explorador de servidores/Explorador de bases de datos, haga clic con el botón secundario del mouse en Conexiones 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 de LINQ to SQL

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

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

  3. Asigne al archivo el nombre northwind.dbml. Haga clic en Agregar. Se abre el Object Relational Designer para el archivo northwind.dbml.

Para agregar tablas al Object Relational Designer

  1. En el 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 Object Relational Designer, puede volver a abrirlo haciendo doble clic en el archivo northwind.dbml que agregó anteriormente.

  2. Haga clic en la tabla Customers y arrástrela hasta el panel izquierdo del diseñador. Haga clic en la tabla Orders y arrástrela hasta el 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 los objetos relacionados. Por ejemplo, IntelliSense mostrará que el objeto Customer tiene una propiedad Orders para todos los pedidos relacionados con ese cliente.

  3. Guarde los cambios y cierre el diseñador.

  4. Guarde el proyecto.

Para agregar código de consulta a la base de datos y mostrar los resultados

  1. Desde el Cuadro de herramientas, arrastre un control DataGridView hasta el formulario Windows Forms predeterminado del proyecto, Form1.

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

  3. Cuando agregó tablas al Object Relational Designer, éste agregó un objeto DataContext al proyecto. Este objeto contiene el código necesario para obtener acceso a esas tablas y a los objetos individuales y colecciones de cada tabla. El nombre del objeto DataContext del proyecto se basa en el nombre del archivo .dbml. En este proyecto, el objeto DataContext se denomina northwindDataContext.

    Puede crear una instancia de DataContext en el código y consultar las tablas especificadas por el Object Relational Designer.

    Agregue el código siguiente al evento Load para consultar las tablas que se exponen como propiedades de DataContext y contar, sumar y calcular el promedio de los resultados. En el ejemplo se usa la cláusula Aggregate para consultar un solo resultado y la cláusula Group By para mostrar una media de los resultados agrupados.

    Dim db As New northwindDataContext
    Dim msg = ""
    
    Dim londonCustomerCount = Aggregate cust In db.Customers
                              Where cust.City = "London"
                              Into Count()
    msg &= "Count of London Customers: " & londonCustomerCount & vbCrLf
    
    Dim averageOrderCount = Aggregate cust In db.Customers
                            Where cust.City = "London"
                            Into Average(cust.Orders.Count)
    msg &= "Average number of Orders per customer: " &
           averageOrderCount & vbCrLf
    
    Dim venezuelaTotalOrders = Aggregate cust In db.Customers
                               Where cust.Country = "Venezuela"
                               Into Sum(cust.Orders.Count)
    msg &= "Total number of orders from Customers in Venezuela: " &
           venezuelaTotalOrders & vbCrLf
    
    MsgBox(msg)
    
    Dim averageCustomersByCity = From cust In db.Customers
                                 Group By cust.City
                                 Into Average(cust.Orders.Count)
                                 Order By Average
    
    DataGridView1.DataSource = averageCustomersByCity
    
  4. Presione F5 para ejecutar el proyecto y ver los resultados.

Vea también

Tareas

Tutorial: Crear clases de LINQ to SQL (Object Relational Designer)

Referencia

Aggregate (Cláusula, Visual Basic)

Group By (Cláusula, Visual Basic)

Conceptos

Métodos DataContext (Object Relational Designer)

Otros recursos

LINQ en Visual Basic

Consultas de Visual Basic

LINQ to SQL