0

I am retrieving the values from XML and storing in a datatable after which i will insert the datatable values to the database.

The Database table structure will be same as the datatable structure i have created.

In the below XML i have only 3 nodes (6 values comprising EmpName and EmpID) , so i have to assign these node values to the first six columns of my datatable. Rest of the columns in datatable should be empty. How can i loop through ?

Note : The table structure is fixed to only 15 employee details, which may sound silly, but this is just an example of my scenario and nothing to do with Employee details actually. If the are more than 15 nodes in XML i will have to ignore it.

XML :

<Employee>
    <add> 
      <EmpName>Ronaldo</EmpName>
      <EmpID>14</EmpID>
    </add>
    <add> 
      <EmpName>Messi</EmpName>
      <EmpID>15</EmpID>
    </add>
    <add> 
      <EmpName>David</EmpName>
      <EmpID>16</EmpID>
    </add>
  </Employee>

Datatable :

        dt_FAQ.Columns.Add("Employee_1", GetType(String)) 
        dt_FAQ.Columns.Add("EmpID_1", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_2", GetType(String))
        dt_FAQ.Columns.Add("EmpID_2", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_3", GetType(String))
        dt_FAQ.Columns.Add("EmpID_3", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_4", GetType(String))
        dt_FAQ.Columns.Add("EmpID_4", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_5", GetType(String))
        dt_FAQ.Columns.Add("EmpID_5", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_6", GetType(String))
        dt_FAQ.Columns.Add("EmpID_6", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_7", GetType(String))
        dt_FAQ.Columns.Add("EmpID_7", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_8", GetType(String))
        dt_FAQ.Columns.Add("EmpID_8", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_9", GetType(String))
        dt_FAQ.Columns.Add("EmpID_9", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_10", GetType(String))
        dt_FAQ.Columns.Add("EmpID_10", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_11", GetType(String))
        dt_FAQ.Columns.Add("EmpID_11", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_12", GetType(String))
        dt_FAQ.Columns.Add("EmpID_12", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_13", GetType(String))
        dt_FAQ.Columns.Add("EmpID_13", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_14", GetType(String))
        dt_FAQ.Columns.Add("EmpID_14", GetType(String)) 
        dt_FAQ.Columns.Add("Employee_15", GetType(String))
        dt_FAQ.Columns.Add("EmpID_15", GetType(String))
4

1 に答える 1

0

これを試して行にデータを追加してください。 "Value " & i.ToString() を実際のデータに置き換えることができます。

Dim workRow As DataRow
Dim i As Integer

workRow = dt_FAQ.NewRow()

For i = 0 To 28
  if(i % 2 == 0) {
     workRow(i) = node[Math.Floor(i/2)].EmpName
  }
  else 
  {
     workRow(i) = node[Math.Floor(i/2)].EmpID
  }
Next

dt_FAQ.Rows.Add(workRow)

HTH。

于 2012-06-28T04:38:14.890 に答える