How to load grid based on values in xml file?

Hello,

I'm trying to load several grids based on the values in my xml file. For example my xml file is in the following format:
 
<?xml version="1.0" standalone="yes" ?> 
- <Root>
  <NSN_ID>1</NSN_ID> 
  <NSN>1305-00-028-1111</NSN> 
  <Type>1</Type> 
  </Row>
- <Row>
- <Root>
  <NSN_ID>2</NSN_ID> 
  <NSN>1305-00-028-1112</NSN> 
  <Type>1</Type> 
  </Row>
- <Row>

- <Root>
  <NSN_ID>3</NSN_ID> 
  <NSN>1305-00-028-1113</NSN> 
  <Type>1</Type> 
  </Row>
- <Row>
  <NSN_ID>4</NSN_ID> 
  <NSN>1305-00-028-1114</NSN> 
  <Type>2</Type> 
  </Row>
- <Row>
- <Row>
  <NSN_ID>5</NSN_ID> 
  <NSN>1305-00-028-1115</NSN> 
  <Type>2</Type> 
  </Row>
- <Row>
  <NSN_ID>3</NSN_ID> 
  <NSN>1305-00-028-1116</NSN> 
  <Type>3</Type> 
  </Row>
- <Row>
  <NSN_ID>4</NSN_ID> 
  <NSN>1305-00-028-1117</NSN> 
  <Type>4</Type> 
  </Row>
  </Root>

I would like to load Grid1 with NSN values where Type = 1, Grid2 with NSN values where type = 2, Grid3 with NSN values where Type = 3 etc..

Open in new window

How do I accomplish this when in the load event of my windows form?

Thank you.

Victor
vcharlesAsked:
Who is Participating?
 
CodeCruiserCommented:
No. After

dtsetcol1.ReadXml(xmlPath1)

Do this

Grid1.DataSource = dtSetCol1
Grid1.DataBind()

Then confirm the data is populating correctly. Also check the column names etc.
0
 
Jesus RodriguezIT ManagerCommented:
What you can do is read the whole XML, get the structure according the nodes and create a dataset with it, then create the grids and assign to each one the differents filters of your dataset and on this way you will have one dataset with your xml and all the grids that you want by the filter that you select.
0
 
CodeCruiserCommented:
Here is how to read xml into a dataset

http://www.a1vbcode.com/snippet-2391.asp

Once you have the dataset, you can do this

Dim dTemp1, dTemp2, dTemp3 as New DataTable

With dataset1.Tables(0)
    .DefaultView.RowFilter = "Type=1"
    dTemp1 = .DefaultView.ToTable()
    .DefaultView.RowFilter = "Type=2"
    dTemp2 = .DefaultView.ToTable()
    .DefaultView.RowFilter = "Type=3"
    dTemp3 = .DefaultView.ToTable()
End With

grid1.DataSource = dTemp1
grid2.DataSource = dTemp2
grid3.DataSource = dTemp3
0
Cloud Class® Course: CompTIA Healthcare IT Tech

This course will help prep you to earn the CompTIA Healthcare IT Technician certification showing that you have the knowledge and skills needed to succeed in installing, managing, and troubleshooting IT systems in medical and clinical settings.

 
vcharlesAuthor Commented:
Hello,

I'm trying the code below, but getting error message "Can not find column "Type" ", any idea what I'm doing wrong?

 Dim xmlPath1 As String
' ReaderOptions xml files
xmlPath1 = System.IO.Path.Combine(Application.StartupPath, "NSN.xml")  'grid1
'Populate dataset
dtsetcol1.ReadXml(xmlPath1)
 Dim dTemp1, dTemp2, dTemp3 As New DataTable

        With dtsetcol1.Tables(0)
            .DefaultView.RowFilter = "Type=1"
            dTemp1 = .DefaultView.ToTable()
            .DefaultView.RowFilter = "Type=2"
            dTemp2 = .DefaultView.ToTable()
            .DefaultView.RowFilter = "Type=3"
            dTemp3 = .DefaultView.ToTable()
            End With

        Grid1.DataSource = dTemp1
        Grid2.DataSource = dTemp2
        Grid3.DataSource = dTemp3

Thanks,

Victor
0
 
CodeCruiserCommented:
After reading the xml, check the Tables count. Set it as a datasource to a grid and see if the data is loaded correctly.
0
 
vcharlesAuthor Commented:
How do you check the Tables count? below is my xml file, could the format also be the problem?

<?xml version="1.0" standalone="yes"?>
<Root>
  <Row>
    <NSN_ID>0</NSN_ID>
    <NSN>NA</NSN>
    <Type>0</Type>
  </Row>
  <Row>
    <NSN_ID>1</NSN_ID>
    <NSN>1305-00-028-1111</NSN>
    <Type>1</Type>
  </Row>
  <Row>
    <NSN_ID>2</NSN_ID>
    <NSN>1305-00-028-1112</NSN>
    <Type>2</Type>
  </Row>
  <Row>
    <NSN_ID>3</NSN_ID>
    <NSN>1305-00-028-1113</NSN>
    <Type>3</Type>
  </Row>
  <Row>
    <NSN_ID>4</NSN_ID>
    <NSN>1305-00-028-1114</NSN>
    <Type>4</Type>
  </Row>

<Row>
    <NSN_ID>3</NSN_ID>
    <NSN>1305-00-028-1115</NSN>
    <Type>5</Type>
  </Row>
  <Row>
    <NSN_ID>4</NSN_ID>
    <NSN>1305-00-028-1116</NSN>
    <Type>6</Type>
  </Row>
</Root>
0
 
CodeCruiserCommented:
Did you try to set it as a data source to grid?
0
 
vcharlesAuthor Commented:
I'm using the following code for the grid, what should I be using?

Grid1.DataSource = dTemp1
Grid2.DataSource = dTemp2
Grid3.DataSource = dTemp3

Thanks,

Victor
0
 
vcharlesAuthor Commented:
Please close this case.

Thank You.

Victor
0
 
vcharlesAuthor Commented:
Thank You.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.