Como: Chamar um procedimento armazenado usando LINQ (Visual Basic)
O LINQ (Language-Integrated Query) facilita o acesso a informações de banco de dados, incluindo objetos de banco de dados, como procedimentos armazenados.
O exemplo a seguir mostra como criar um aplicativo que chama um procedimento armazenado em um banco de dados do SQL Server. O exemplo mostra como chamar dois procedimentos armazenados diferentes no banco de dados. Cada procedimento retorna os resultados de uma consulta. Um procedimento usa parâmetros de entrada, e o outro procedimento não usa parâmetros.
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.
Nota
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.
Para criar uma conexão com um banco de dados
No Visual Studio, abra o Gerenciador de Banco de Dados do Gerenciador/de Servidores clicando em Gerenciador de Banco de Dados do Gerenciador/de Servidores no menu Exibir.
Clique com o botão direito do rato em Ligações de Dados no Explorador de Bases de Dados do Explorador/ de Servidores e, em seguida, clique em Adicionar Ligação.
Especifique uma conexão válida com o banco de dados de exemplo Northwind.
Para adicionar um projeto que contém um arquivo LINQ to SQL
No Visual Studio, no menu Arquivo , aponte para Novo e clique em Projeto. Selecione Visual Basic Windows Forms Application como o tipo de projeto.
No menu Projeto, clique em Adicionar Novo Item. Selecione o modelo de item LINQ to SQL Classes .
Dê o nome
northwind.dbml
ao ficheiro. Clique em Adicionar. O Object Relational Designer (O/R Designer) é aberto para o arquivo northwind.dbml.
Para adicionar procedimentos armazenados ao O/R Designer
No Gerenciador de Bancos de Dados do Gerenciador/de Servidores, expanda a conexão com o banco de dados Northwind. Expanda a pasta Stored Procedures .
Se você tiver fechado o O/R Designer, poderá reabri-lo clicando duas vezes no arquivo northwind.dbml adicionado anteriormente.
Clique no procedimento armazenado Vendas por Ano e arraste-o para o painel direito do designer. Clique no procedimento armazenado dez produtos mais caros, arraste-o para o painel direito do designer.
Salve as alterações e feche o designer.
Guarde o seu projeto.
Para adicionar código para exibir os resultados dos procedimentos armazenados
Na caixa de ferramentas, arraste um DataGridView controle para o Windows Form padrão para seu projeto, Form1.
Clique duas vezes em Form1 para adicionar código ao seu
Load
evento.Quando você adicionou procedimentos armazenados ao O/R Designer, o designer adicionou um DataContext objeto para seu projeto. Este objeto contém o código que você deve ter para acessar esses procedimentos. O DataContext objeto para o projeto é nomeado com base no nome do arquivo .dbml. Para este projeto, o DataContext objeto é chamado
northwindDataContext
.Você pode criar uma instância do em seu código e chamar os métodos de DataContext procedimento armazenado especificados pelo O/R Designer. Para vincular ao DataGridView objeto, talvez seja necessário forçar a execução imediata da consulta chamando o ToList método nos resultados do procedimento armazenado.
Adicione o código a seguir ao
Load
evento para chamar qualquer um dos procedimentos armazenados expostos como métodos para seu contexto de dados.Dim db As New northwindDataContext ' Display the results of the Sales_by_Year stored procedure. DataGridView1.DataSource = db.Sales_by_Year(#1/1/1996#, #1/1/2007#).ToList()
' Display the results of the Ten_Most_Expensive_Products ' stored procedure. DataGridView1.DataSource = db.Ten_Most_Expensive_Products.ToList()
Pressione F5 para executar seu projeto e visualizar os resultados.