Partilhar via


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

As consultas LINQ (Language-Integrated Query) facilitam o acesso às informações do banco de dados e a modificação de valores no banco de dados.

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. Se não tiver esta base de dados no computador de desenvolvimento, pode transferi-la a partir do Centro de Transferências da Microsoft. Para obter instruções, consulte Download de bancos de dados de exemplo.

Para criar uma conexão com um banco de dados

  1. No Visual Studio, abra o Gerenciador de Banco de Dados do Gerenciador/de Servidores clicando no menu Exibir e selecione Gerenciador de Banco de Dados do Gerenciador/de Servidores.

  2. Clique com o botão direito do mouse em Conexões de Dados no Gerenciador de Bancos de Dados do Gerenciador/de Servidores 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 LINQ to SQL

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

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

  3. Dê o nome northwind.dbml ao ficheiro. Clique em Adicionar. O Object Relational Designer (O/R Designer) é aberto para o northwind.dbml arquivo.

Para adicionar tabelas para consultar e modificar para o designer

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

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

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

    O designer cria um novo objeto Customer para seu projeto.

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

  4. Guarde o seu projeto.

Para adicionar código para modificar o banco de dados e exibir os resultados

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

  2. Quando você adicionou tabelas ao O/R Designer, o designer adicionou um DataContext objeto ao seu projeto. Este objeto contém código que você pode usar para acessar a tabela Customers. Ele também contém código que define um objeto Customer local e uma coleção Customers para a tabela. O DataContext objeto para seu projeto é nomeado com base no nome do seu arquivo .dbml. Para este projeto, o DataContext objeto é chamado northwindDataContext.

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

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

    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 Button controles para o formulário. Selecione o primeiro Button controle. Na janela Propriedades, defina o Name do controle como e AddButton o Text para ButtonAdd. Selecione o segundo botão e defina a Name propriedade como UpdateButton e a Text propriedade como Update. Selecione o terceiro botão e defina a Name propriedade como DeleteButton e a Text propriedade como Delete.

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

    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 o seguinte código:

    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 seu Click evento. Adicione o seguinte código:

    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 seu 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.

Consulte também