Partilhar via


Passo a passo: Manipulando dados (Visual Basic)

Este passo a passo fornece um cenário LINQ to SQL fundamental de ponta a ponta para adicionar, modificar e excluir dados em um banco de dados. Você usará uma cópia do banco de dados Northwind de exemplo para adicionar um cliente, alterar o nome de um cliente e excluir um pedido.

Observação

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ê tem e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Personalizando o IDE.

Este passo a passo foi escrito usando as configurações de desenvolvimento do Visual Basic.

Pré-requisitos

Este passo a passo requer o seguinte:

  • Este passo a passo usa uma pasta dedicada ("c:\linqtest2") para armazenar arquivos. Crie esta pasta antes de começar o passo a passo.

  • O banco de dados de amostra Northwind.

    Se não tiver esta base de dados no computador de desenvolvimento, pode transferi-la a partir do site de transferências da Microsoft. Para obter instruções, consulte Como descarregar bancos de dados de exemplo. Depois de baixar o banco de dados, copie o arquivo northwnd.mdf para a pasta c:\linqtest2.

  • Um arquivo de código do Visual Basic gerado a partir do banco de dados Northwind.

    Você pode gerar esse arquivo usando o Object Relational Designer ou a ferramenta SQLMetal. Este passo a passo foi escrito usando a ferramenta SQLMetal com a seguinte linha de comando:

    sqlmetal /code:"c:\linqtest2\northwind.vb" /language:vb "C:\linqtest2\northwnd.mdf" /pluralize

    Para obter mais informações, consulte SqlMetal.exe (Ferramenta de geração de código).

Visão geral

Este passo a passo consiste em seis tarefas principais:

  • Criando a solução LINQ to SQL no Visual Studio.

  • Adicionando o arquivo de código do banco de dados ao projeto.

  • Criação de um novo objeto de cliente.

  • Modificar o nome de contato de um cliente.

  • Eliminar uma encomenda.

  • Submeter estas alterações à base de dados Northwind.

Criando uma solução LINQ to SQL

Nesta primeira tarefa, você cria uma solução do Visual Studio que contém as referências necessárias para criar e executar um projeto LINQ to SQL.

Para criar uma solução LINQ to SQL

  1. No menu Arquivo do Visual Studio, clique em Novo Projeto.

  2. No painel Tipos de projeto na caixa de diálogo Novo Projeto , clique em Visual Basic.

  3. No painel Modelos , clique em Aplicativo de Console.

  4. Na caixa Nome , digite LinqDataManipulationApp.

  5. Clique em OK.

Adicionando referências e diretivas LINQ

Este passo a passo usa componentes que podem não ser instalados por defeito no seu projeto. Se System.Data.Linq não estiver listado como uma referência em seu projeto (clique em Mostrar todos os arquivos no Gerenciador de Soluções e expanda o nó Referências ), adicione-o, conforme explicado nas etapas a seguir.

Para adicionar System.Data.Linq

  1. No Gerenciador de Soluções, clique com o botão direito do mouse em Referências e clique em Adicionar Referência.

  2. Na caixa de diálogo Adicionar referência , clique em .NET , clique no assembly System.Data.Linq e, em seguida, clique em OK .

    A montagem é adicionada ao projeto.

  3. No editor de códigos, adicione as seguintes diretivas acima do Module1:

    Imports System.Data.Linq
    Imports System.Data.Linq.Mapping
    
    

Adicionando o arquivo de código Northwind ao projeto

Estas etapas pressupõem que você tenha usado a ferramenta SQLMetal para gerar um arquivo de código do banco de dados de exemplo Northwind. Para obter mais informações, consulte a seção Pré-requisitos anteriormente neste passo a passo.

Para adicionar o arquivo de código northwind ao projeto

  1. No menu Projeto , clique em Adicionar Item Existente.

  2. Na caixa de diálogo Adicionar Item Existente , navegue até c:\linqtest2\northwind.vb e clique em Adicionar.

    O arquivo northwind.vb é adicionado ao projeto.

Configurando a conexão do banco de dados

Primeiro, teste sua conexão com o banco de dados. Observe especialmente que o nome do banco de dados, Northwnd, não tem caractere i. Caso gere erros nos passos seguintes, reveja o ficheiro northwind.vb para verificar como é escrita a classe parcial Northwind.

Para configurar e testar a conexão do banco de dados

  1. Digite ou cole o seguinte código em Sub Main:

    ' Use a connection string, but connect to
    '     the temporary copy of the database.
    Dim db As New Northwnd _
        ("C:\linqtest2\northwnd.mdf")
    
    ' Keep the console window open after activity stops.
    Console.ReadLine()
    
  2. Pressione F5 para testar o aplicativo neste ponto.

    Uma janela Console é aberta.

    Feche o aplicativo pressionando Enter na janela Console ou clicando em Parar Depuração no menu Depurar do Visual Studio.

Criando uma nova entidade

Criar uma nova entidade é simples. Você pode criar objetos (como Customer) usando a New palavra-chave.

Nesta e nas seções a seguir, você está fazendo alterações apenas no cache local. Nenhuma alteração é enviada para o banco de dados até que você execute SubmitChanges no final deste tutorial.

Para adicionar um novo objeto de entidade Cliente

  1. Crie um novo Customer adicionando o seguinte código antes Console.ReadLine em Sub Main:

    ' Create the new Customer object.
    Dim newCust As New Customer()
    newCust.CompanyName = "AdventureWorks Cafe"
    newCust.CustomerID = "A3VCA"
    
    ' Add the customer to the Customers table.
    db.Customers.InsertOnSubmit(newCust)
    
    Console.WriteLine("Customers matching CA before insert:")
    
    Dim custQuery = _
        From cust In db.Customers _
        Where cust.CustomerID.Contains("CA") _
        Select cust
    
    For Each cust In custQuery
        Console.WriteLine("Customer ID: " & cust.CustomerID)
    Next
    
  2. Pressione F5 para depurar a solução.

    Os resultados mostrados na janela do console são os seguintes:

    Customers matching CA before insert:

    Customer ID: CACTU

    Customer ID: RICAR

    Observe que a nova linha não aparece nos resultados. Os novos dados ainda não foram submetidos à base de dados.

  3. Pressione Enter na janela Console para interromper a depuração.

Atualizando uma entidade

Nas etapas a seguir, você recuperará um Customer objeto e modificará uma de suas propriedades.

Para alterar o nome de um Cliente

  • Adicione o seguinte código acima Console.ReadLine():

    Dim existingCust = _
        (From cust In db.Customers _
         Where cust.CustomerID = "ALFKI" _
         Select cust).First()
    
    ' Change the contact name of the customer.
    existingCust.ContactName = "New Contact"
    

Excluindo uma entidade

Usando o mesmo objeto de cliente, você pode excluir o primeiro pedido.

O código a seguir demonstra como cortar relações entre linhas e como excluir uma linha do banco de dados.

Para excluir uma linha

  • Adicione o seguinte código logo acima Console.ReadLine():

    ' Access the first element in the Orders collection.
    Dim ord0 As Order = existingCust.Orders(0)
    
    ' Access the first element in the OrderDetails collection.
    Dim detail0 As OrderDetail = ord0.OrderDetails(0)
    
    ' Display the order to be deleted.
    Console.WriteLine _
        (vbCrLf & "The Order Detail to be deleted is: OrderID = " _
        & detail0.OrderID)
    
    ' Mark the Order Detail row for deletion from the database.
    db.OrderDetails.DeleteOnSubmit(detail0)
    

Enviando alterações ao banco de dados

A etapa final necessária para criar, atualizar e excluir objetos é realmente enviar as alterações para o banco de dados. Sem esta etapa, as alterações são apenas locais e não aparecerão nos resultados da consulta.

Para enviar alterações ao banco de dados

  1. Insira o seguinte código logo acima Console.ReadLine:

    db.SubmitChanges()
    
  2. Insira o seguinte código (após SubmitChanges) para mostrar os efeitos antes e depois do envio das alterações:

    Console.WriteLine(vbCrLf & "Customers matching CA after update:")
    Dim finalQuery = _
        From cust In db.Customers _
        Where cust.CustomerID.Contains("CA") _
        Select cust
    
    For Each cust In finalQuery
        Console.WriteLine("Customer ID: " & cust.CustomerID)
    Next
    
  3. Pressione F5 para depurar a solução.

    A janela do console aparece da seguinte maneira:

    Customers matching CA before update:  
    Customer ID: CACTU  
    Customer ID: RICAR  
    
    The Order Detail to be deleted is: OrderID = 10643  
    
    Customers matching CA after update:  
    Customer ID: A3VCA  
    Customer ID: CACTU  
    Customer ID: RICAR  
    
  4. Pressione Enter na janela Console para interromper a depuração.

Observação

Depois de adicionar o novo cliente enviando as alterações, não é possível executar essa solução novamente como está, porque não é possível adicionar o mesmo cliente novamente como está. Para executar a solução novamente, altere o valor do ID do cliente a ser adicionado.

Ver também