Desenvolvimento - Visual Basic .NET

Master/Details com um Dataset, dois DataTables e três neurônios

Neste artigo mostrarei como é possível carregar em um DataSet duas tabelas do banco de dados Northwind do MS SQL 2000.

por Cristian Arrano Townsend



Neste artigo mostrarei como é possível carregar em um DataSet duas tabelas do banco de dados Northwind do MS SQL 2000.

The x-code

O código abaixo mostra como criar um Dataset com duas tabelas ("Categories" e "Products").

Dim objConn As SqlConnection
Dim da As SqlDataAdapter
Dim ds As DataSet
Dim dtrParent As DataRow
Dim dtrChild As DataRow

objConn = New SqlConnection("server=localhost;database=northwind;trusted_connection=true")
da = New SqlDataAdapter("SELECT * FROM Categories", objConn)
ds = New DataSet
Try
objConn.Open()
   	da.Fill(ds, "Categories")
      	da.SelectCommand = New SqlCommand("SELECT * FROM Products", objConn)
      	da.Fill(ds, "Products")
      Catch exc As SqlException
      	Response.Write(exc.ToString())
      Finally
            objConn.Dispose()
      End Try

Com a seguinte linha, eu crio a relacao entre as duas tabelas. Bastante fácil.

ds.Relations.Add("Cat_Prod", ds.Tables("Categories").Columns("CategoryID"), ds.Tables("Products").Columns("CategoryID"))

Chegou o momento da verdade: Imprimir os dados. Para isso, fiz dois For Each, uma para a tabela "pai" (Categories) e um para a tabela "filho" (Products).

Durante a impressão, foi criada a tabela em html com um StringBuilder, como mostra o codigo abaixo:

For Each dtrParent In ds.Tables("Categories").Rows
    strBuild.Append("<table border="1" cellpadding="0" cellspacing="0" ")
    strBuild.Append(">

É isso ai pessoal.

Cristian Arrano Townsend

Cristian Arrano Townsend - Trabalha há 12 anos com desenvolvimento de software. Atualmente trabalha como consultor da FCAMARA em Curitiba, trabalhando com .NET, Metodologias Ágeis e Sharepoint. Possui algumas certificações Microsoft .NET e é Certified Scrum Master