ASP.NET 2.0 - ObjectDatasource : Atualizando e excluindo dados.
Se você quer criar
páginas na internet para interagir com banco de dados
tem a obrigação de conhecer os novos controles de
acesso a dados da ASP.NET versão 2.0. Podemos visualizar os principais controles de acesso a dados a partir da ToolBox do Visual Web Developer Express:
Cada um deles tem um propósito específico e neste artigo vamos ver como podemos usar estes controles para acessar dados e exibi-los em páginas ASP.NET. Vamos lá... Para acompanhar este artigo você necessitará dos seguintes recursos (todos gratuitos) instalados:
|
Usando o controle ObjectDataSource
O ObjectDataSource é um controle de origem de dados ASP.NET que representa um objeto de camada intermediária que reconhece dados ou um objeto de interface de dados para controles ligados a dados. Você pode usar o controle ObjectDataSource em conjunto com um controle ligado a dados para exibir, editar, e classificar dados em uma página da Web com pouco ou nenhum código.
No artigo - ASP.NET 2.0 - O controle ObjectDataSource : gerenciando dados apresentamos o controle e mostramos uma utilização básica que era obter dados de uma camada de acesso aos dados (DAL).
Neste artigo ou mostrar como podemos efetuar as operações básicas de inclusão , alteração e exclusão de dados usando o componente ObjectDataSource.
Para aplicações web mais complexas , ao invés de simplesmente usar o objeto SqlDataSource, uma melhor estratégia é dividir a arquitetura da aplicação em diferentes camadas; geralmente se usa 3 camadas:
O pré-requisito para usar o ObjectDataSource é criar a camada de acesso aos dados (DAL), após fazermos isto , o componente pode ser usado para encapsular a informação retornada a partir da DAL. As tarefas que temos que realizar para preparar o ambiente para isso são:
No primeiro artigo acima citado eu já criei a camada de acesso a dados (DAL), defini o nome da camada e criei um método para obter dados da tabela Products do banco de dados Northwind.mdf chamado getProdutos.
ObjectDataSource - Atualizando e Excluindo dados
Excluir um registro em um componente GridView que esta vinculado a um ObjectDataSource segue a mesma lógica usada para excluir um registro de um GridView vinculado a um SqlDataSource. A única diferença é que a camada de acesso aos dados tem que fornecer o método para deletar o registro.
Cabe ressaltar que quando estamos manipulando os dados exposto por um ObjectDataSource existem dois métodos que podem ser usados para tratar os dados. O ObjectDataSource possui uma propriedade chamada ConfictDetection que pode possuir um dos seguintes valores:
Nota: Para saber mais leia o artigo - VB2005 - Introdução a concorrência de dados
No exemplo abaixo estamos usando o valor padrão (OverwriteChanges)
Vamos definir os método para excluir e para atualizar um registro da tabela Products do banco de dados Northwind.mdf usando a camada de acesso a dados criada no artigo : ASP.NET 2.0 - O controle ObjectDataSource : gerenciando dados. Para ficar mais fácil a visualização vou exibir no código somente os métodos excluiProduto() e atualizaProduto():
Nota: Ambos os métodos serão criados na classe ProdutoDAL e são métodos estáticos (Shared).
... End Using End Sub Public Shared Sub excluiProduto(ByVal ProductID As Integer) ' Exclui um regitro especifico da tabela Products do banco de dados Northwind Dim sql As String = "DELETE FROM [Products] WHERE ProductID = @ProductID" Dim strConexao As String = "Data Source=.\SQLEXPRESS;AttachDbFilename=C:\dados\NORTHWND.MDF;Integrated Security=True;Connect Timeout=30;User Instance=True" Using conexaoBD As New SqlConnection(strConexao) Dim comandoBD As New SqlCommand(sql, conexaoBD) comandoBD.Parameters.Add( New SqlParameter("@ProductID", ProductID))conexaoBD.Open() comandoBD.ExecuteNonQuery() conexaoBD.Close() End UsingEnd Sub End Class End ClassEnd Class |
Nota: Para excluir um registro da tabela Products eu exclui todos os relacionamentos da tabela, caso contrário ocorreria um erro.
Após definir os métodos na classe ProdutoDAL temos que ajustar o componente ObjectDataSource para usar as classes criadas.
Voltemos ao DataGridView e na opção GridView Tasks clique em Configure Data Source ...
A seguir na janela Configure Data Source , selecione os objetos de negócio conforme abaixo e clique em Next>
A próxima tarefa é mapear o ObjectDataSource para os métodos criados:
Após efetuarmos o mapeamento vamos configurar o DataGridView; Clique em Edit Columns(1) e a seguir em CommandField(2) e altere o texto para exibir os comandos em português(3) e altere a propriedade ButtonType para Button afim de exibir botões de comando no datagridview, conforme a figura:
Após clicarmos em Auto Format.. e selecionarmos uma formatação mais atraente podemos executar o projeto.
Executando o projeto iremos obter o seguinte resultado:
Pegue o projeto completo aqui: objectDataSourceNet.zip
Você vai notar que basta clicar no botão Excluir para que o registro seja excluído sumariamente do grid, que tal incluirmos uma solicitação de confirmação ao usuário antes de excluir ?
Verei isso amanhã...
Acompanhe ainda o artigo - ASP.NET 2.0 - ObjectDataSource : inserindo dados (ainda não esta ativo)
José Carlos Macoratti