Hi
I'm not really sure if it is a something simple that I am just not grasping or something which might require a different approach.
I am trying to achieve the following result below (I have removed a lot of the meta data to aid with reading):
<dealer>
<dealername>ABC</dealername>
<dealerID>1</dealerID>
<vehicle>
<stockID>100</stockID>
<make>Samsung</make>
<model>Galaxy</model>
<images>
<imgurl>http://www.dealer-website.co.za/images/image1.jpg</imgurl>
<imgurl>http://www.dealer-website.co.za/images/image2.jpg</imgurl>
</images>
</vehicle>
….
</dealer>
My problem lies with repeating <imgurl> fields inside the images tag WITHOUT the numbers .
Currently I have only been able to produce the following 2 Results :
Result 1 (tableImagesA) :
<dealer>
<dealerID>1</dealerID>
<dealername>ABC</dealername>
<vehicle>
<stockID>100</stockID>
<make>Samsung</make>
<model>Galaxy</model>
<images>
<image1>http://www.dealer-website.co.za/images/image1.jpg</image1>;
<image2>http://www.dealer-website.co.za/images/image2.jpg</image2>;
</images>
</vehicle>
….
</dealer>
And Result 2 (tableImagesB) :
<dealer>
<dealerID>1</dealerID>
<dealername>ABC</dealername>
<vehicle>
<stockID>100</stockID>
<make>Samsung</make>
<model>Galaxy</model>
<images>
<imgurl>http://www.dealer-website.co.za/images/image1.jpg</imgurl>;
</images>
<images>
<imgurl>http://www.dealer-website.co.za/images/image2.jpg</imgurl>;
</images>
</vehicle>
….
</dealer>
Code Section (I use tables from a database but have manually added the data to datatables below for clarity):
I’m not sure what to try further. I was hoping that someone might be able to shine some light on this matter.Code:Dim ds As New DataSet 'Define Dealer table columns and types Dim tableDealers As New DataTable tableDealers.TableName = "dealer" tableDealers.Columns.Add(New DataColumn("dealerID", Type.GetType("System.Int32"))) tableDealers.Columns.Add(New DataColumn("dealername", Type.GetType("System.String"))) 'Add Dealer data to table Dim obj As Object() = {"1", "ABC"} 'Create object array with row values tableDealers.Rows.Add(obj) 'Add row to table 'Add table to dataset ds.Tables.Add(tableDealers) Dim tableVehicles As New DataTable tableVehicles.TableName = "vehicle" tableVehicles.Columns.Add(New DataColumn("stockID", Type.GetType("System.Int32"))) tableVehicles.Columns.Add(New DataColumn("make", Type.GetType("System.String"))) tableVehicles.Columns.Add(New DataColumn("model", Type.GetType("System.String"))) tableVehicles.Columns.Add(New DataColumn("dealerID", Type.GetType("System.Int32"))) obj = New Object() {"100", "Samsung", "Galaxy", "1"} 'New Object() for VS 2008 compatibility tableVehicles.Rows.Add(obj) obj = New Object() {"101", "LG", "Optimus", "1"} tableVehicles.Rows.Add(obj) obj = New Object() {"102", "Panasonic", "Lumix", "1"} tableVehicles.Rows.Add(obj) obj = New Object() {"103", "Sony", "Xperia", "1"} tableVehicles.Rows.Add(obj) ds.Tables.Add(tableVehicles) Dim relDealerStock As DataRelation = New DataRelation("relDealerStock", tableDealers.Columns("dealerID"), tableVehicles.Columns("dealerID")) relDealerStock.Nested = True tableVehicles.Columns("dealerID").ColumnMapping = MappingType.Hidden ds.Relations.Add(relDealerStock) 'tableImagesA - representation of what the actual table design looks like in the database Dim tableImages As New DataTable tableImages.TableName = "images" tableImages.Columns.Add(New DataColumn("stockID", Type.GetType("System.Int32"))) tableImages.Columns.Add(New DataColumn("image1", Type.GetType("System.String"))) tableImages.Columns.Add(New DataColumn("image2", Type.GetType("System.String"))) tableImages.Columns.Add(New DataColumn("image3", Type.GetType("System.String"))) tableImages.Columns.Add(New DataColumn("image4", Type.GetType("System.String"))) tableImages.Columns.Add(New DataColumn("image5", Type.GetType("System.String"))) obj = New Object() {"100", "http://www.dealer-website.co.za/images/image1.jpg", "http://www.dealer-website.co.za/images/image2.jpg"} tableImages.Rows.Add(obj) obj = New Object() {"102", "http://www.dealer-website.co.za/images/image1b.jpg"} tableImages.Rows.Add(obj) 'tableImagesB - representation of transposed version of the tableImagesA table by means of union queries 'Dim tableImages As New DataTable 'tableImages.TableName = "images" 'tableImages.Columns.Add(New DataColumn("stockID", Type.GetType("System.Int32"))) 'tableImages.Columns.Add(New DataColumn("imgurl", Type.GetType("System.String"))) 'obj = New Object() {"100", "http://www.dealer-website.co.za/images/image1.jpg"} 'tableImages.Rows.Add(obj) 'obj = New Object() {"100", "http://www.dealer-website.co.za/images/image2.jpg"} 'tableImages.Rows.Add(obj) 'obj = New Object() {"102", "http://www.dealer-website.co.za/images/image1b.jpg"} 'tableImages.Rows.Add(obj) ds.Tables.Add(tableImages) Dim relStockImages As DataRelation = New DataRelation("relStockImages", tableVehicles.Columns("stockID"), tableImages.Columns("stockID")) relStockImages.Nested = True tableImages.Columns("stockID").ColumnMapping = MappingType.Hidden ds.Relations.Add(relStockImages) ds.DataSetName = "root" Me.txtDisplay.Text = ds.GetXml
Thank you




Reply With Quote