msdn05_capa.JPG

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

 

Data Binding no Visual Basic .NET

por Ken Spencer

 

Como posso obter o melhor do data binding nos aplicativos em Visual Basic® .NET?

 

Primeiro, vamos tratar um pouco da arquitetura. A Figura 1 mostra uma visão geral de uma maneira comum de usar data binding com uma fonte de dados (data source). Os dados são extraídos da fonte por meio de uma biblioteca de dados e colocados em um DataSet não tipado. O DataSet não tipado é usado para permitir o uso de uma biblioteca de acesso a dados genéricos. Isso lhe permite chamar uma única função que retorne qualquer DataSet. Você pode pegar esse DataSet não tipado e mesclá-lo a um DataSet tipado, usando duas tabelas correspondentes. Por fim, você pode vincular controles ao DataSet tipado.

 

image001.gif

Figura 1. Vinculando

 

Você deve estar se perguntando por que eu não estabeleci um vínculo diretamente com o DataSet não tipado. O DataSet tipado oferece recursos como early binding de campos. Isso permite que você use .CustomerName como um membro do DataSet ao invés de fazer referência à coleção Items com o valor "CustomerName," o que faz com que o processo de acesso a dados seja muito mais objetivo. O early binding também fornece suporte automático para data binding (vinculação de dados) em design-time. Com isso, você pode selecionar campos no editor e até mesmo acessar propriedades personalizadas em determinados controles.

Agora, vamos examinar o data binding. Observe a função a seguir que extrai os dados do SQL Server™ e retorna um DataSet:

 

Function RetrieveCustomerContacts() As DataSet

  Dim ds As DataSet

  Try

    ds = RunSQLWithDataSet("Select CustomerID,  " & _

    "CompanyName,ContactName,NoOfCustomerVisits " & _

    "from customers", ConnectionString, "Customers")

  Catch ex As Exception

    ds = Nothing

  End Try

  Return ds

End Function

 

Em seguida, considere um DataSet tipado chamado Customers com os campos a seguir, que adicionei ao projeto como dsCustomers.xsd (parte do XSD foi omitida para poupar espaço):