VB .NET -  Como usar objetos DataSet  - III


 

Os objetos DataSet e DataTable podem ser ligados a objetos DataGrid para fornecer uma forma simples de visualizar dados. Isto é feito através da chamada do método SetDataBinding do objeto DataGrid  passando o objeto que será vinculado ao grid.  A sintaxe do método SetDataBinding é :

Public Sub SetDataBinding( _
   ByVal dataSource As Object, _
   ByVal dataMember As String )
Os parâmetros são :
dataSource
A fonte de dados a ser exibida no grid. Pode ser um objeto DataSet ou DataTable.
dataMember
Se o objeto passado no parâmetro  dataSource tiver múltiplas tabelas (Ex: DataSet) , o parâmetro  dataMember identifica a tabela a ser exibida no Datagrid. Se o objeto for um DataTable no parãmetro  dataSource parameter, o parâmetro  dataMember irá conter ou uma string vazio ou Nothing.
 
Criando um DataSet  e vinculando-o a um DataGrid

Abaixo vamos mostrar um exemplo de como vincular  um objeto DataSource a um DataGrid. O objeto DataSource contém a tabela Clientes e a tabela Pedidos. Criamos dois objetos DataAdapter e preenchemos o DataSet com as tabelas . A seguir criamos um objeto Relation que define um relacionamento entre as tabelas Pedidos e Clientes usando o campo CódigoDoCliente . Finalmente exibimos o DataSet no DataGrid . O código a seguir mostra todo este serviço:

 

Nota: Criamos um novo projeto do tipo Windows Application . Você deve inserir um componente DataGrid no formulário padrão e não esquecer de importar o namespace System.Data.OleDb , pois estamos acessando um banco de dados Access ( Northwind.mdb )

 

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

'abre uma conexao

Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\teste\Northwind.mdb"

Dim cn As OleDbConnection = New OleDbConnection(strConnection)

cn.Open()

 

' define um objeto dataAdapater

Dim strSql As String = _

    "SELECT CódigoDoCliente, NomeDaEmpresa, NomeDoContato, Telefone FROM Clientes" _

    & " WHERE Cidade = 'São Paulo' AND País = 'Brazil'"

 

Dim da As OleDbDataAdapter = New OleDbDataAdapter(strSql, cn)

 

' Carrega o DataSet

Dim ds As DataSet = New DataSet()

 

Try

   da.Fill(ds, "Clientes")

Catch ex As Exception

  MsgBox(ex.Message)

End Try

 

' Define um novo objeto DataAdapter

strSql = _

       "SELECT Pedidos.NúmeroDoPedido, Pedidos.CódigoDoCliente, Pedidos.DataDoPedido," _

       & " Pedidos.DataDeEnvio" _

       & " FROM Clientes, Pedidos" _

       & " WHERE (Clientes.CódigoDoCliente = Pedidos.CódigoDoCliente)" _

       & " AND (Clientes.Cidade = 'São Paulo')" _

       & " AND (Clientes.País = 'Brazil')"

 

da = New OleDbDataAdapter(strSql, cn)

' carrega o dataset.

Try

  da.Fill(ds, "Pedidos")

Catch ex As Exception

   MsgBox(ex.Message)

End Try

 

' fecha a conexao

cn.Close()

 

' Cria uma relação

Try

   ds.Relations.Add("ClientesPedidos", ds.Tables("Clientes").Columns("CódigoDoCliente"), _

   ds.Tables("Pedidos").Columns("CódigoDoCliente"))

Catch ex As Exception

   MsgBox(ex.message)

End Try

 

' Vincula o dastaset ao datagrid

grd.SetDataBinding(ds, "Clientes")

End Sub

 

 

O resultado é exibido a seguir : Onde temos os dados da tabela Clientes exibidos no DataGrid. O relacionamento é indicado pelo sinal (+) que pode ser expandido para mostrar os pedidos de um determinado cliente.

 

 

Usando um DataSet para exibir dados em uma página ASP.NET

 

Podemos aproveitar a base de conhecimentos de acesso a dados com ADO.NET para criar páginas ASP.NET. Basicamente há poucas mudanças a fazer . Vamos mostrar a seguir como exibir o resultado da seleção dos dados da tabela Clientes do banco de dados Northwind.mdb em uma página ASP.NET.

 

Abaixo temos o código do arquivo MostraDados.aspx que deverá ser gravado em um diretório de trabalho do seu servidor.

 

<%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OLEDB" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OLEDB" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OLEDB" %> <%@ Import Namespace="System.Data" %> <%@ Import Namespace="System.Data.OLEDB" %>

<%@ Import Namespace="System.Data" %>
<%@ Import Namespace="System.Data.OLEDB" %>

<script language="VB" runat="server">

Protected Sub Page_Load(ByVal Sender As System.Object,ByVal e As System.EventArgs)

If Not IsPostback Then 'verdade a primeira vez que o Browse carrega a pagina
    ' vincula o grid aos dados
    grdClientes.DataSource = GetDataSource( )
    grdClientes.DataBind( )
End If

End Sub

Protected Function GetDataSource( ) As System.Collections.ICollection

' abre uma conexao
Dim strConnection As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:/teste/Northwind.mdb"
Dim cn As OleDbConnection = New OleDbConnection(strConnection)
cn.Open()

'define um objeto dataAdapater
Dim strSql As String = _
                      "SELECT CódigoDoCliente, NomeDaEmpresa, NomeDoContato, Telefone FROM Clientes" _
                      & " WHERE Cidade = 'São Paulo' AND País = 'Brazil'"

Dim da As OleDbDataAdapter = New OleDbDataAdapter(strSql, cn)

' Carrega o DataSet
Dim ds As DataSet = New DataSet()
da.Fill(ds, "Clientes")

'fecha a conexao
cn.Close( )

'envolve o objeto Datatable Clientes em um objeto DataView
Dim dv As New DataView(ds.Tables("Clientes"))

Return dv

End Function

</script>

<html>
<body>

<asp:DataGrid id=grdClientes runat="server" ForeColor="Black">
    <AlternatingItemStyle BackColor="Gainsboro" />
    <FooterStyle ForeColor="White" BackColor="Silver" />
    <ItemStyle BackColor="White" />
    <HeaderStyle Font-Bold="True" ForeColor="White"
    BackColor="Black" />
</asp:DataGrid>

</body>
</html>

 

Abaixo o resultado do processamento da página MostraDados.aspx.

 

 

Você pode ver o resultado deste código acessando o link :   MostraDados.aspx

 

Acompanhe a continuação no link:... Como usar objetos DataSet IV..

 

Veja os Destaques e novidades do SUPER DVD Visual Basic (sempre atualizado) : clique e confira !

Quer migrar para o VB .NET ?

Quer aprender C# ??

 

             Gostou ?   Compartilhe no Facebook   Compartilhe no Twitter
 

Referências:


José Carlos Macoratti