Como modificar dados em um banco de dados usando LINQ (Visual Basic)

As consultas LINQ (Consulta integrada à linguagem) facilitam o acesso a informações do banco de dados e modificam seus valores.

O exemplo a seguir mostra como criar um novo aplicativo que recupera e atualiza informações em um banco de dados do SQL Server.

Os exemplos neste tópico usam o banco de dados de exemplo Northwind. Caso não tenha esse banco de dados no seu computador de desenvolvimento, você poderá baixá-lo no Centro de Download da Microsoft. Para obter as instruções, consulte Baixar bancos de dados de exemplo.

Para criar uma conexão com um banco de dados

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

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

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

Para adicionar um Projeto com um arquivo do LINQ to SQL

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

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

  3. Atribua um nome ao arquivo northwind.dbml. Clique em Adicionar. O Designer Relacional de Objetos é aberto para o arquivo northwind.dbml.

Para adicionar tabelas para consultar e modificar para o designer

  1. No Gerenciador de Servidores/Gerenciador de Banco de Dados, expanda a conexão com o banco de dados Northwind. Expanda a pasta Tabelas .

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

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

    O designer cria um novo objeto Customer para seu projeto.

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

  4. Salve seu projeto.

Para adicionar código para modificar 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. Quando você adicionou tabelas ao Designer Relacional de Objetos, ele adicionou um objeto DataContext ao seu projeto. Este objeto contém o código que você pode usar para acessar a tabela Customers. Ele também contém o código que define um objeto Customer local e uma coleção Customers para a tabela. O objeto DataContext do projeto é nomeado com base no nome do arquivo .dbml. Para este projeto, o objeto DataContext é chamado northwindDataContext.

    Você pode criar uma instância do objeto DataContext em seu código e consultar e modificar a coleção Customers especificada pelo Designer Relacional de Objetos. As alterações feitas na coleção Customers não são refletidas no banco de dados até que você as envie chamando o método SubmitChanges do objeto DataContext.

    Clique duas vezes no Windows Form, Form1, para adicionar código ao evento Load a fim de consultar a tabela Customers que é exposta como uma propriedade do seu DataContext. Adicione os códigos a seguir:

    Private db As northwindDataContext
    
    Private Sub Form1_Load(ByVal sender As System.Object,
                           ByVal e As System.EventArgs
                          ) Handles MyBase.Load
      db = New northwindDataContext()
    
      RefreshData()
    End Sub
    
    Private Sub RefreshData()
      Dim customers = From cust In db.Customers
                      Where cust.City(0) = "W"
                      Select cust
    
      DataGridView1.DataSource = customers
    End Sub
    
  3. Na Caixa de Ferramentas, arraste três controles Button para o formulário. Selecione o primeiro controle Button. Na janela Propriedades, defina a Name do controle Button como AddButton e a Text como Add. Selecione o segundo botão e defina a propriedadeName como UpdateButton e a propriedade Text como Update. Selecione o terceiro botão e defina a propriedadeName como DeleteButton e a propriedade Text como Delete.

  4. Clique duas vezes no botão Adicionar para adicionar código ao evento Click. Adicione os códigos a seguir:

    Private Sub AddButton_Click(ByVal sender As System.Object,
                                ByVal e As System.EventArgs
                               ) Handles AddButton.Click
      Dim cust As New Customer With {
        .City = "Wellington",
        .CompanyName = "Blue Yonder Airlines",
        .ContactName = "Jill Frank",
        .Country = "New Zealand",
        .CustomerID = "JILLF"}
    
      db.Customers.InsertOnSubmit(cust)
    
      Try
        db.SubmitChanges()
      Catch
        ' Handle exception.
      End Try
    
      RefreshData()
    End Sub
    
  5. Clique duas vezes no botão Atualizar para adicionar código ao evento Click. Adicione os códigos a seguir:

    Private Sub UpdateButton_Click(ByVal sender As System.Object, _
                                   ByVal e As System.EventArgs
                                  ) Handles UpdateButton.Click
      Dim updateCust = (From cust In db.Customers
                        Where cust.CustomerID = "JILLF").ToList()(0)
    
      updateCust.ContactName = "Jill Shrader"
      updateCust.Country = "Wales"
      updateCust.CompanyName = "Red Yonder Airlines"
      updateCust.City = "Cardiff"
    
      Try
        db.SubmitChanges()
      Catch
        ' Handle exception.
      End Try
    
      RefreshData()
    End Sub
    
  6. Clique duas vezes no botão Excluir para adicionar código ao evento Click. Adicione os códigos a seguir:

    Private Sub DeleteButton_Click(ByVal sender As System.Object, _
                                   ByVal e As System.EventArgs
                                  ) Handles DeleteButton.Click
      Dim deleteCust = (From cust In db.Customers
                        Where cust.CustomerID = "JILLF").ToList()(0)
    
      db.Customers.DeleteOnSubmit(deleteCust)
    
      Try
        db.SubmitChanges()
      Catch
        ' Handle exception.
      End Try
    
      RefreshData()
    End Sub
    
  7. Pressione F5 para executar o projeto. Clique em Adicionar para adicionar um novo registro. Clique em Atualizar para modificar o novo registro. Clique em Excluir para excluir o novo registro.

Confira também