Compartilhar via


Como classificar os resultados da consulta usando LINQ (Visual Basic)

LINQ (Consulta Integrada à Linguagem) facilita o acesso às 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 do SQL Server e classifica os resultados por vários campos usando a cláusula Order By. A ordem de classificação para cada campo pode ser ordem crescente ou ordem decrescente. Para obter mais informações, consulte Cláusula Order By.

Os exemplos neste artigo usam o banco de dados de exemplo Northwind. Para obter o banco de dados, consulte Baixando bancos de dados de exemplo.

Nota

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

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 Exibição.

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

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

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

  1. No Visual Studio, no menu Arquivo, aponte para Novo e clique em Projeto. Selecione como tipo de projeto Visual Basic Aplicativo de Windows Forms.

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

  3. Nomeie o arquivo northwind.dbml. Clique em Adicionar. O Designer Relacional de Objeto (Designer O/R) é aberto para o arquivo northwind.dbml.

Para adicionar tabelas à consulta ao Designer Relacional de Objetos

  1. Em Server Explorer/Database Explorer, expanda a conexão com o banco de dados Northwind. Expanda a pasta Tabelas .

    Se você fechou o Designer O/R, 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 Pedidos e arraste-a para o painel esquerdo do designer.

    O designer cria novos objetos Customer e Order para seu projeto. Observe que o designer detecta automaticamente relações entre as tabelas e cria propriedades filho 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 código para consultar o banco de dados e exibir os resultados

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

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

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

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

    Adicione o código a seguir ao evento Load para consultar as tabelas expostas como propriedades do contexto de dados e classificar os resultados. A consulta classifica os resultados pelo número de pedidos de clientes, em ordem decrescente. Os clientes que têm o mesmo número de pedidos são ordenados pelo nome da empresa em ordem crescente (o padrão).

    Dim db As New northwindDataContext
    
    Dim q = From cust In db.Customers
            Where cust.Orders.Count > 0
            Select cust.CustomerID, cust.CompanyName,
                   OrderCount = cust.Orders.Count, cust.Country
            Order By OrderCount Descending, CompanyName
    
    DataGridView1.DataSource = q
    
  4. Pressione F5 para executar seu projeto e exibir os resultados.

Consulte também