Compartilhar via


Como contar, somar ou fazer média de dados usando LINQ (Visual Basic)

Consulta Integrada à Linguagem (LINQ, Language-Integrated Query) facilita o acesso a informações do banco de dados e a execução de consultas.

O exemplo a seguir mostra como criar um novo aplicativo que executa consultas em um banco de dados SQL Server. O exemplo conta, soma e calcula a média de resultados usando as cláusulas Aggregate e Group By. Para obter mais informações, consulte Cláusula Aggregate (Visual Basic) e Cláusula Group By (Visual Basic).

Os exemplos neste tópico usam o banco de dados de exemplo Northwind. Se você não tiver o banco de dados de exemplo Northwind no seu computador de desenvolvimento, você poderá baixá-lo do site da Web Microsoft Download Center. Para obter instruções, consulte Baixando bancos de dados de exemplo [wd_LINQSQL].

Dica

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizando configurações de desenvolvimento no Visual Studio.

Para criar uma conexão com um banco de dados

  1. No Visual Studio, abra Gerenciador de Servidores/Gerenciador de Banco de Dados clicando em Gerenciador de Servidores/Gerenciador de Banco de Dados no menu Exibir .

  2. Clique com o botão direito do mouse em Conexões de Dados no Gerenciador de Servidores/Gerenciador de Banco de Dados e, em seguida, clique em Adicionar Conexões.

  3. Especifique uma conexão válida ao banco de dados de exemplo Northwind.

Para adicionar um projeto que contém um arquivo LINQ to SQL

  1. No Visual Studio, no menu File, aponte para New e em seguida clique em Project. Selecione Aplicativo Windows Forms Visual Basic como o tipo de projeto.

  2. No menu Project, clique em Add New Item. Selecione o modelo de item Classes LINQ to SQL .

  3. Nomeie o arquivo northwind.dbml. Clique em Adicionar. O Object Relational Designer (O/R Designer) é aberto para o arquivo northwind.dbml.

Para adicionar tabelas de consulta para o criador O/R

  1. Em Gerenciador de Servidores/ Gerenciador de Banco de dados , expanda a conexão para o banco de dados Northwind. Expanda a pasta Tabelas.

    Se você tiver fechado o O/R Designer, você poderá reabri-lo clicando duas vezes no arquivo northwind.dbml que você adicionou anteriormente.

  2. Clique na tabela Clientes e arraste-a para o painel esquerdo do designer. Clique na tabela Ordens e arraste-a para o painel esquerdo do designer.

    O designer cria novos objetos Customer e Order para seu projeto. Observe que o designer automaticamente detecta relacionamentos entre as tabelas e cria propriedades filhas para objetos relacionados. Por exemplo, o IntelliSense mostrará que o objeto Customer tem uma propriedade Orders para todos os pedidos relacionados a esse cliente.

  3. Salve suas alterações e feche o designer.

  4. Salve seu projeto.

Para adicionar um código de consulta ao banco de dados e exibir os resultados

  1. Da Caixa de Ferramentas, arraste um controle DataGridView para o Windows Form padrão para seu projeto, Form1.

  2. Clique duas vezes em Form1 para adicionar código ao evento Load do formulário.

  3. Quando você adicionar tabelas ao O/R Designer, o designer adicionará um objeto DataContext para o projeto. Este objeto contém o código que você deve ter para acessar essas tabelas e para acessar objetos individuais e coleções para cada tabela. O objeto DataContext para seu projeto é nomeado com base no nome do arquivo .dbml. Para este projeto, o objeto DataContext é denominado northwindDataContext.

    Você pode criar uma instância de DataContext no seu código e consultar as tabelas especificadas pelo O/R Designer.

    Adicione o seguinte código ao evento Load para consultar as tabelas que são expostas como propriedades de seu DataContext e contam, somam e tiram a média dos resultados. O exemplo utiliza a cláusula Aggregate para consultar um único resultado e a cláusula Group By para mostrar uma média para 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. Pressione F5 para executar seu projeto e exibir os resultados.

Consulte também

Tarefas

Passo a passo: criando classes LINQ to SQL (Designer Relacional de Objetos)

Referência

Cláusula Aggregate (Visual Basic)

Cláusula Group By (Visual Basic)

Conceitos

Métodos de DataContext (Designer de Objeto Relacional)

Outros recursos

LINQ no Visual Basic

Consultas (Visual Basic)

LINQ to SQL [wd_LINQSQL]