Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este passo a passo fornece um cenário básico de LINQ to SQL de ponta a ponta para acessar dados executando somente procedimentos armazenados. Essa abordagem geralmente é usada pelos administradores de banco de dados para limitar como o armazenamento de dados é acessado.
Observação
Você também pode usar procedimentos armazenados em aplicativos LINQ to SQL para substituir o comportamento padrão, especialmente para Create, Updatee Delete processos. Para obter mais informações, consulte Personalizando operações de inserção, atualização e exclusão.
Para fins deste passo a passo, você usará dois métodos que foram mapeados para procedimentos armazenados no banco de dados de exemplo Northwind: CustOrdersDetail e CustOrderHist. O mapeamento ocorre quando você executa a ferramenta de linha de comando sqlMetal para gerar um arquivo C#. Para obter mais informações, consulte a seção Pré-requisitos mais adiante neste passo a passo.
Este passo a passo não depende do Designer Relacional de Objeto. Os desenvolvedores que usam o Visual Studio também podem usar o Designer O/R para implementar a funcionalidade de procedimento armazenado. Veja LINQ to SQL Tools no Visual Studio.
Observação
Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos de 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 C#.
Pré-requisitos
Este passo a passo requer o seguinte:
Este passo a passo usa uma pasta dedicada ("c:\linqtest7") para armazenar arquivos. Crie esta pasta antes de começar o passo a passo.
O banco de dados de exemplo Northwind.
Se você não tiver esse banco de dados em seu computador de desenvolvimento, poderá baixá-lo no site de download da Microsoft. Para obter instruções, consulte Baixar bancos de dados de exemplo. Depois de baixar o banco de dados, copie o arquivo northwnd.mdf para a pasta c:\linqtest7.
Um arquivo de código C# gerado a partir do banco de dados Northwind.
Este passo a passo foi escrito usando a ferramenta SqlMetal com a seguinte linha de comando:
sqlmetal /code:"c:\linqtest7\northwind.cs" /language:csharp "c:\linqtest7\northwnd.mdf" /sprocs /functions /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:
Configurando a solução LINQ to SQL no Visual Studio.
Adicionando o assembly System.Data.Linq ao projeto.
Adicionando o arquivo de código do banco de dados ao projeto.
Criando uma conexão com o banco de dados.
Configurando a interface do usuário.
Executando e testando o aplicativo.
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
No menu Arquivo do Visual Studio, aponte para Novo e clique em Projeto.
No painel Tipos de projeto na caixa de diálogo Novo Projeto , clique em Visual C#.
No painel Modelos , clique em Aplicativo do Windows Forms.
Na caixa Nome , digite SprocOnlyApp.
Na caixa Localização , verifique onde você deseja armazenar os arquivos do projeto.
Clique em OK.
O Designer de Formulários do Windows é aberto.
Adicionando a referência do assembly do LINQ to SQL
O assembly LINQ to SQL não está incluído no modelo padrão de aplicação do Windows Forms. Você mesmo precisará adicionar o assembly, conforme explicado nas etapas a seguir:
Para adicionar o System.Data.Linq.dll
No Gerenciador de Soluções, clique com o botão direito do mouse em Referências e clique em Adicionar Referência.
Na caixa de diálogo Adicionar Referência , clique em .NET, clique no assembly System.Data.Linq e clique em OK.
O assembly é adicionado ao projeto.
Adicionando o arquivo de código Northwind ao projeto
Esta etapa pressupõe 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
No menu Project, clique em Adicionar Item Existente.
Na caixa de diálogo Adicionar Item Existente , mova para c:\linqtest7\northwind.cs e clique em Adicionar.
O arquivo northwind.cs é adicionado ao projeto.
Criando uma conexão de banco de dados
Nesta etapa, você define a conexão com o banco de dados de exemplo Northwind. Este passo a passo usa "c:\linqtest7\northwnd.mdf" como caminho.
Para estabelecer a conexão com o banco de dados
No Gerenciador de Soluções, clique com o botão direito do mouse em Form1.cs e clique em Exibir Código.
Digite o seguinte código na
Form1classe:Northwnd db = new Northwnd(@"c:\linqtest7\northwnd.mdf");
Configurando a interface do usuário
Nesta tarefa, você configura uma interface para que os usuários possam executar procedimentos armazenados para acessar dados no banco de dados. Nos aplicativos que você está desenvolvendo com este passo a passo, os usuários podem acessar dados no banco de dados apenas usando os procedimentos armazenados inseridos no aplicativo.
Para configurar a interface do usuário
Retorne ao Designer de Formulários do Windows (Form1.cs[Design]).
No menu Exibir , clique em Caixa de Ferramentas.
A caixa de ferramentas é aberta.
Observação
Clique no pino do AutoHide para manter a caixa de ferramentas aberta enquanto você executa as etapas restantes nesta seção.
Arraste dois botões, duas caixas de texto e dois rótulos da caixa de ferramentas para o Form1.
Organize os controles como na ilustração que acompanha. Expanda Form1 para que os controles se ajustem facilmente.
Clique com o botão direito do mouse em label1 e clique em Propriedades.
Altere a propriedade Text de label1 para Insira o ID do Pedido:.
Da mesma forma para label2, altere a propriedade Text de label2 para Enter CustomerID:.
Da mesma forma, altere a propriedade Text para button1 para Detalhes do Pedido.
Altere a propriedade Text de button2 para Histórico de Pedidos.
Amplie os controles de botão para que todo o texto fique visível.
Para manipular cliques de botão
Clique duas vezes em Detalhes do Pedido no Form1 para abrir o manipulador de eventos button1 no editor de código.
Digite o seguinte código no
button1manipulador:// Declare a variable to hold the contents of // textBox1 as an argument for the stored // procedure. string param = textBox1.Text; // Declare a variable to hold the results // returned by the stored procedure. var custquery = db.CustOrdersDetail(Convert.ToInt32(param)); // Execute the stored procedure and display the results. string msg = ""; foreach (CustOrdersDetailResult custOrdersDetail in custquery) { msg = msg + custOrdersDetail.ProductName + "\n"; } if (msg == "") msg = "No results."; MessageBox.Show(msg); // Clear the variables before continuing. param = ""; textBox1.Text = "";Agora clique duas vezes no botão2 no Form1 para abrir o
button2manipuladorDigite o seguinte código no
button2manipulador:// Comments in the code for button2 are the same // as for button1. string param = textBox2.Text; var custquery = db.CustOrderHist(param); string msg = ""; foreach (CustOrderHistResult custOrdHist in custquery) { msg = msg + custOrdHist.ProductName + "\n"; } MessageBox.Show(msg); param = ""; textBox2.Text = "";
Testando o aplicativo
Agora é hora de testar seu aplicativo. Observe que o contato com o repositório de dados limita-se a qualquer ação que os dois procedimentos armazenados podem executar. Essas ações são para retornar os produtos incluídos para qualquer ID do pedido que você inserir, ou para retornar um histórico de produtos pedidos para qualquer ID do cliente inserido.
Para testar o aplicativo
Pressione F5 para iniciar a depuração.
Form1 aparecerá.
Na caixa Inserir OrderID , digite
10249e clique em Detalhes do Pedido.Uma caixa de mensagem lista os produtos incluídos na ordem 10249.
Clique em OK para fechar a caixa de mensagem.
Na caixa Inserir CustomerID , digite
ALFKIe clique em Histórico de Pedidos.Uma caixa de mensagem é exibida que lista o histórico de pedidos do cliente ALFKI.
Clique em OK para fechar a caixa de mensagem.
Na caixa Inserir OrderID , digite
123e clique em Detalhes do Pedido.Uma caixa de mensagem é exibida que exibe "Sem resultados".
Clique em OK para fechar a caixa de mensagem.
No menu Depurar , clique em Parar depuração.
A sessão de depuração é fechada.
Se terminar de experimentar, clique em Fechar Projeto no menu Arquivo e salve seu projeto quando for solicitado.
Próximas etapas
Você pode aprimorar esse projeto fazendo algumas alterações. Por exemplo, você pode listar os procedimentos armazenados disponíveis em uma caixa de listagem e fazer com que o usuário selecione quais procedimentos executar. Você também pode transmitir a saída dos relatórios para um arquivo de texto.