Imports System.Data
Imports System.Data.SqlClient
Imports System.Xml
Imports System.Xml.Xsl
Imports System.IO
Module Module1
Sub Main()
Try
'Connect to Northwind database; Modify the connection string to suit your environment
Dim cnNwind As New SqlConnection _
("Data Source=(local);Integrated security=SSPI;Initial catalog=Northwind;")
'Select data from Orders table
Dim daOrders As New SqlDataAdapter _
("Select OrderID,CustomerID from Orders", cnNwind)
'Select data from [Order Details] table
Dim daOrder_Details As New SqlDataAdapter _
("Select OrderID,ProductID,UnitPrice,Quantity from [Order Details] where OrderID=10248", cnNwind)
'Fill the DataSet with Orders and [Order Details] data
Dim ds As New DataSet("OrderData")
daOrders.Fill(ds, "Orders")
daOrder_Details.Fill(ds, "OrderDetails")
'Create a data relation for the two tables
Dim dr As New DataRelation("RelOrderDetail", ds.Tables("Orders").Columns("OrderID"), _
ds.Tables("OrderDetails").Columns("OrderID"))
'dr.Nested = True ' LINE1
ds.Relations.Add(dr)
'Synchronize the DataSet with XMLDataDocument
Dim xmldd As New XmlDataDocument(ds)
'XslTransform objects to transform the DataSet
Dim xsldoc As New XslTransform()
xsldoc.Load("c:\nonNested.xsl") ' LINE2
'xsldoc.Load("c:\Nested.xsl") ' LINE3
'Create a StreamWriter to write the xsl output
Dim strmResult As New StreamWriter("result.xml")
Dim startTime As DateTime
'Transform the DataDocument
startTime = System.DateTime.Now()
xsldoc.Transform(xmldd, Nothing, strmResult)
Console.Write("Time taken to execute XSLT = " _
& Str(System.DateTime.Now.Subtract(startTime).TotalMilliseconds))
strmResult.Close()
Catch sqlex As SqlException
Console.WriteLine(sqlex.Message)
Catch xmlex As XmlException
Console.WriteLine(xmlex.Message)
Catch ex As Exception
Console.WriteLine(ex.Message)
Finally
Console.Read()
End Try
End Sub
End Module