Como modificar dados em um banco de dados usando LINQ (Visual Basic)
Language-Integrated As consultas LINQ facilitam o acesso às informações do banco de dados e a modificação de valores no mesmo banco.
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 artigo usam o banco de dados de exemplo Northwind. Para obter o banco de dados, consulte Baixando bancos de dados de exemplo.
Para criar uma conexão com um banco de dados
No Visual Studio, abra o Server Explorer/ clicando no menu Exibir e, em seguida, selecione o Server Explorer/.
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.
Especifique uma conexão válida com o banco de dados de exemplo Northwind.
Para adicionar um Projeto com um linq ao arquivo SQL
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.
No menu Project, clique em Adicionar Novo Item. Selecione o modelo de item Classes LINQ to SQL.
Nomeie o arquivo
northwind.dbml
. Clique em Adicionar. O Designer Relacional de Objeto (Designer O/R) é aberto para o arquivonorthwind.dbml
.
Para adicionar tabelas para consultar e modificar para o designer
Em Explorador de Servidores/Explorador de Bancos de Dados, 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 de
northwind.dbml
que você adicionou anteriormente.Clique na tabela Clientes e arraste-a para o painel esquerdo do designer.
O designer cria um novo objeto Customer para seu projeto.
Salve suas alterações e feche o designer.
Salve seu projeto.
Para adicionar código para modificar o banco de dados e exibir os resultados
Na Caixa de Ferramentas , arraste um controle DataGridView para o formulário padrão do Windows para seu projeto, Form1.
Quando você adicionou tabelas ao Designer O/R, o designer adicionou um objeto DataContext ao seu projeto. Este objeto contém o código que você pode usar para acessar a tabela Clientes. Ele também contém 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 é nomeado
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 O/R. 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 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
Na Caixa de Ferramentas , arraste três controles Button para o formulário. Selecione o primeiro controle
Button
. Na janela Propriedades, defina aName
do controleButton
comoAddButton
e aText
comoAdd
. Selecione o segundo botão e defina a propriedadeName
comoUpdateButton
e a propriedadeText
paraUpdate
. Selecione o terceiro botão e defina a propriedadeName
comoDeleteButton
e a propriedadeText
paraDelete
.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
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
Clique duas vezes no botão Excluir para adicionar código ao evento
Click
. 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
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.