ADO.NET 2.0 - Data Binding

Por Leonardo Bruno Lima

Nesta matéria irei reescrever sobre DataBinding, mas dessa vez utilizando a versão 2.0 do ADO.NET.

A base na qual a vinculação de dados se apóia não mudou muito, apenas foi aperfeiçoada. Então para saber como funciona, leia a matéria sobre DataBind com ADO.NET 1.1.

O que mudou então?

Basicamente, foi a implementação de dois novos objetos: DataBindingSource e DataBindingNavegator e uma nova característica na criação de DataSets tipados.

O primeiro objeto atua como o CurrencyManager, adicionado de mais recursos como Filtro, o método Find, métodos para navegação explícita (ao invés da propriedade Position), etc.

Já o DataBindingNavegator nos dá uma interface gráfica para manipulação dos dados vinculados através do DataBindingSource. Com ele você pode navegar entre os registros, por exemplo, sem digitar nenhuma linha de código.

Vamos começar criando o DataSource. Essa é mais uma novidade, na versão 2005, podemos criar um DataSource que pode ser acessado por qualquer classe do projeto.

Crie um novo projeto chamado ADODataBinding. Para criar o DataSource podemos utilizar o mesmo método utilizado no Visual Studio 2003, ou seja, no Server Explorer adicionamos uma nova conexão, em seguida criamos um DataSet tipado e arrastamos uma tabela para dentro do Designer do DataSet. Mas existe outra maneira, basta irmos à guia Data Sources e clicarmos no botão Add New Data Source, a janela para escolhermos o tipo de DataSource aparecerá como mostra a figura abaixo:

Cc517963.ADONET20_DataBinding_01(pt-br,MSDN.10).png

No nosso caso, escolheremos Database. Avance e lhe será pedido para escolher uma conexão, caso haja uma. Se não houver, cria uma nova clicando no botão New Connection como mostra a figura abaixo:

Cc517963.ADONET20_DataBinding_02(pt-br,MSDN.10).png

Após criar a conexão, avance e selecione a Tabela, View, Store Procedure ou Função que deseja definir como DataSource do projeto. Veja a tela abaixo:

Cc517963.ADONET20_DataBinding_03(pt-br,MSDN.10).png

No nosso caso, escolheremos a tabela Employees. Após finalizar, temos o nosso DataSource criado e já podemos construir o formulário de entrada de dados. Renomeie o Form1 para FrmFuncionarios. Agora vá à Guia Data Sources e veja que já temos a nossa disposição a tabela Employees e os respectivos campos como mostra a figura abaixo:

Cc517963.ADONET20_DataBinding_04(pt-br,MSDN.10).png

Agora basta que arrastemos os campos que queremos para o formulário e automaticamente serão criadas as instâncias dos objetos: NorthwindDataSet, EmployeesBindingSource, EmployeesTableAdapter e EmployeesBindingNavigator.

Vamos ver o que cada objeto significa:

- NorthwindDataSet: É a instância do DataSet tipado que foi criado no momento em que construímos o nosso Data Source. Esse DataSet tipado é igual a qualquer outro DataSet tipado, ou seja, possui uma classe com a descrição dos campos, etc. A novidade é que no momento em que ele foi criado, também foi criado uma classe chamada EmployeesTableAdapter.
- EmployeesTableAdapter: É uma classe que é diretamente ligada a tabela Employees do DataSet tipado recém criado. Com ela, a ligação da tabela do DataSet com a tabela do Banco de Dados fica mais transparente, ou seja, o EmployeesTableAdapter faz o trabalho de preencher a tabela local, atualizar o Banco com as alterações feitas localmente, etc. De início podemos até ficar confuso, mas isso nada mais é do que o que fazíamos antes, criando vários DataAdapters para cada tabela, só que agora isso é feito de forma mais organizada.
- EmployeesBindingSource: É uma instância do objeto BindingSource. Ele encapsula o papel do DataSource, sendo possível usa-lo com DataSource de qualquer controle.
- EmployeesBindingNavigator: É uma instância do objeto BindingNavigator, que nos permite realizar as operações básicas nos registros vinculados aos controles do formulário.

Veja como deve ficar o formulário do nosso exemplo:

Cc517963.ADONET20_DataBinding_05(pt-br,MSDN.10).png

Agora que já montamos o Layout do formulário, o que devemos fazer? Absolutamente nada. Rode o programa e veja como ficou. Veja que todos os recursos de navegação, exclusão, inclusão, edição e atualização da base estão prontos. Obviamente precisamos fazer alguns ajustes na classe EmployeesTableAdapter na questão de tratamento de erros, tratamento de concorrência, etc.

Agora para finalizar vou adicionar um GridView para visualizar os dados de outra maneira. Para fazer isso basta ir à Guia Data Sources e arrastar a tabela Employees para o formulário. Após isso podemos escolher que campos irão aparecer no nosso GridView, para isso clique com o botão direito e escolha a opção Edit Columns. Rode a aplicação e repare que quando navegamos pelo GridView os dados do formulário também acompanham e vice-versa. Bem, mas isso é um assunto para uma próxima matéria. Sobre GridView em detalhes.

Conclusão: Com mais esse simples exemplo, podemos ver o quanto a vinculação de dados no .NET continua poderosa. Todos esses recursos que vimos nessa matéria possuem muito mais características interessantes que devem ser exploradas. Bom estudo e até a próxima.

Leonardo Bruno Lima
lblima_net@hotmail.com
Microsoft MVP (Most Valuable Professional)
Trabalha com desenvolvimento de aplicações .NET desde 2001. Ministra cursos sobre a plataforma .NET, é consultor de tecnologia e desenvolvedor de sistemas na RR Consultoria e Sistemas (Fortaleza - CE).
Atualmente está dedicado ao desenvolvimento de um sistema ERP utilizando a plataforma .NET