No dia-dia das nossas atividades como
desenvolvedor é comum trabalharmos com acesso a dados nas aplicações
desenvolvidas, sejam elas Windows, Web, Mobile, etc. Como estas tarefas são
utilizadas com uma certa freqüência, a Microsoft criou controles do tipo Data Bound onde não precisarmos ir
diretamente ao código para criar funcionalidades como paginação e ordenação,
exibição, edição e exclusão de registros, etc.
Os controles Data Bound são controles que podem ser ligados diretamente aos componentes de dados. Neste artigo, irei focar nos dois controles mais usados e como preenchê-los com dados oriundos de um objeto de negócio:
· DataGrid
· ComboBox
Para começar, crie um nova base de dados no SQL Server Express com o nome FornecedorProduto, e adicione as seguintes tabelas:
· FOR_Fornecedor,
· PRO_Produto,
· FPR_Fornecedor_Produto.
Veja na imagem abaixo o diagrama da base de
dados a ser utilizada no artigo:
Figura 1 – Diagrama do Banco de dados FornecedorProduto.
Após desenvolver o banco de dados, crie um novo website no Visual Studio.Net 2005, que aqui chamei de ObjetoDeNegocio.
Figura 2 – Novo WebSite.
Adicione duas novas classes chamadas de clsFornecedor e clsProduto respectivamente. Estas duas classes serão as classe de negócio do projeto. Irei codificar as classes de forma simples para exibir a funcionalidade a que esse artigo propõe. Dessa forma, em cada classe existirá apenas um método, que será o responsável por retornar um DataSet.
Na Classe clsFornecedor o método RetornaFornecedores será responsável por retornar o Código e o Nome do Fornecedor. Na classe clsProduto, o método RetornaProdutos recebe um parâmetro do tipo inteiro que é o código do fornecedor, e retorna todos os produtos do fornecedor passado como parâmetro.
Na Listagem 1 e 2, temos respectivamente a implementação do método RetornaFornecedores() da classe clsFornecedor, e RetornaProduto() da classe clsProduto.
public DataSet RetornaFornecedores()
{
String sql;
sql = " SELECT dbo.FOR_Fornecedor.FOR_Codigo, dbo.FOR_Fornecedor.FOR_Nome ";
sql += "FROM dbo.FOR_Fornecedor ";
SqlConnection conexao = new SqlConnection("Data Source=REGILAN\\SQLEXPRESS;Initial Catalog=FornecedorProduto;Integrated Security=True");
SqlCommand comando = new SqlCommand(sql, conexao);
SqlDataAdapter adapter = new SqlDataAdapter(comando);
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds;
}
Listagem 1 – Método RetornaFornecedores
public DataSet RetornaProdutos(int codFornecedor)
{
String sql;
sql = "SELECT dbo.PRO_Produto.PRO_Codigo,dbo.PRO_Produto.PRO_Descricao ";
sql += "FROM dbo.FOR_Fornecedor INNER JOIN ";
sql += "dbo.FPR_Fornecedor_Produto ON dbo.FOR_Fornecedor.FOR_Codigo = dbo.FPR_Fornecedor_Produto.FPR_Codigo_Fornecedor INNER JOIN ";
sql += "dbo.PRO_Produto ON dbo.FPR_Fornecedor_Produto.FPR_Codigo_Produto = dbo.PRO_Produto.PRO_Codigo ";
sql += "WHERE dbo.FPR_Fornecedor_Produto.FPR_Codigo_Fornecedor = ";
sql += codFornecedor;
SqlConnection conexao = new SqlConnection("Data Source=REGILAN\\SQLEXPRESS;Initial Catalog=FornecedorProduto;Integrated Security=True");
SqlCommand comando = new SqlCommand(sql, conexao);
SqlDataAdapter adapter = new SqlDataAdapter(comando);
DataSet ds = new DataSet();
adapter.Fill(ds);
return ds;
}
Listagem 2 – Método RetornaProdutos.
Com as Classes de Negócios codificadas, vamos agora inserir um controle DropDownList e um controle GridView na nossa página que deverá ficar semelhante a Figura 3.
Figura 3 – Página de Exibição dos Dados.
Vamos inicialmente configurar a propriedade de DataSource do DropDownList, onde temos várias possibilidades de trazer dados o controle.
Figura 4 – Escolhendo um Data Source.
Escolha a opção Object
Figura 5 – Definindo o Data Source o Tipo Object.
Na Janela a seguir, escolha o objeto de negócios, que no nosso caso será a classe clsFornecedor.
Figura 6 – Selecionando o Objeto de Negócio.
Clique em Next, e na janela a seguir defina os métodos de acesso a dados. No nosso exemplo vamos definir o método RetornaFornecedores().
Figura 7 – Definindo o Método de Acesso a Dados.
Clique em Finish e em seguida, selecione o campo para ser visualizado e o campo associado ao valor no DropDownList.
Figura 8 – Definindo as Configurações da GridView.
Antes de seguir para o próximo passo, configure a propriedade AutoPostBack do DropDownList para True.
Agora vamos definir o Data Source da GridView. Repita os passos descritos acima, com as seguintes orientações:
O objeto de Negócios deverá ser a classe clsProduto, e o método de acesso a dados será RetornaProdutos. Na janela de definição dos parâmetros, faça conforme a imagem abaixo, onde o Parameter Source define a fonte do parâmetro que será um controle, e o ID do Controle que será a DropDownList1.
Figura 9 – Definindo parâmetros para o método RetornaProdutos.
Clique em Finish e execute o projeto.
Figura 10 – Página em Exibição.
Selecione o Fornecedor desejado e a página será recarregada apresentando na GridView os respectivos Códigos e Descrição dos Produtos de um determinado Fornecedor.
Chegamos ao final do artigo. Até o próximo!