Revista MSDN Magazine Edição 22 - Stored Procedures no .NET - parte II

Artigo Originalmente Publicado na MSDN Magazine Edição 22

Clique aqui para ler todos os artigos desta edição

 

Stored Procedures no .NET – parte II

por Cezar Guimarães Neto

Este artigo discute

Este artigo usa as seguintes tecnologias:

·Preencher um DataGrid

·Utilizar DataCommand e DataAdapter

·Utilizar DataSet e DataReader

·Utilizar Parâmetros

ADO.Net, SQL Server

 

Download:

UtilizandoSPs.zip (48KB)

Chapéu

Stored Procedure

ADO.Net

 

 

Stored procedure é um excelente recurso para utilizarmos em aplicações. Ela permite que uma série de comandos envolvendo a base de dados sejam encapsulados em um único comando na aplicação. Também permite otimizações que contribuem para a melhoria da performance da aplicação e ainda oferece benefícios de segurança. Estes são apenas alguns dos benefícios de utilizarmos Stored Procedures que vimos na primeira parte deste tutorial. Vimos também, como é simples criarmos e acessarmos procedures quando utilizamos os recursos do Visual Studio .Net. Neste artigo, veremos como podemos acessar as procedures nas aplicações com o .Net e o ADO.Net.

Preenchendo um DataGrid

Uma procedure pode retornar um ou mais resultados, dependendo do número de queries que ela contenha. É muito simples manipularmos o resultado de uma query ou de um conjunto de queries que sejam executados por uma procedure. Para isto, basta executarmos a procedure utilizando o DataAdapter para preencher os dados em um DataSet. Vejamos passo-a-passo como preencher um DataGrid com o resultado de um a query contida em uma procedure.

No Visual Studio, crie uma nova classe chamada UtilizaSP. Como vamos precisar da string de conexão em diversos métodos, crie uma variável privada para contê-la (sugiro utilizar _strConn). Altere o constructor da classe para ter um parâmetro tipo string para receber o nome do servidor. Desta maneira, será possível informar o nome do servidor SQL ao se instanciar a classe. No constructor da classe, faça a variável _strConn receber a string de conexão concatenada com o nome do servidor recebido no parâmetro de entrada. Assim como fizemos no primeiro artigo, utilizaremos a base Northwind que acompanha o SQL Server 2000.

 

//String de conexão

private string _strConn;

public UtilizaSP(string server)

{

//Monta a string de conexão com o nome do servidor.

_strConn = "Initial Catalog=Northwind;Data Source="+ server +

";Integrated Security=SSPI;";

}

 

Para este exemplo, utilizaremos a procedure Ten Most Expensive Products que retorna os 10 produtos mais caros. Crie um método chamado BuscaProdutosMaisCaros que retorna um DataSet.  Para utilizar as classe do ADO.Net é necessário que o projeto contenha as referências System.Data e System.Data.SqlClient.

 

using System.Data;

using System.Data.SqlClient;

 

No método, crie um novo DataSet _ds. Declare e instancie o SqlConnection chamado _conn . Um dos constructors desta classe recebe como parâmetro a string de conexão. Declare e instancie o SqlCommand,  chamado _comm, sem passar parâmetros. Nestes exemplos determinaremos os valores dos parâmetros através das propriedades. E por fim, declare e instancie o SqlDataAdapter chamado _adap. Um dos seus constructors recebe como parâmetro um SqlCommand. Informe o SqlCommand criado anteriormente (_comm). Para os que desenvolvem utilizando a linguagem C#, sugiro utilizar o using. Com isso, garantimos que o método Dispose seja executado no fim do bloco using. Os que usam outras linguagens devem fechar a conexão e executar o método Dispose das demais classes.

Para o SqlCommand  atribua o valor da propriedade CommandType com o tipo de StoredProcedure. Isto reduz o tempo de execução, pois torna desnecessário que o tipo de comando seja encontrado durante a execução. Atribua o valor da propriedade CommandText com o nome da procedure que utilizaremos e o valor da propriedade Connection  com o objeto de conexão _conn.

" [...] continue lendo...
Ebook exclusivo
Dê um upgrade no início da sua jornada. Crie sua conta grátis e baixe o e-book

Artigos relacionados