0

我正在从 XML 中检索值并将其存储在数据表中,之后我会将数据表值插入数据库。

数据库表结构将与我创建的数据表结构相同。

在下面的 XML 中,我只有 3 个节点(包含 EmpName 和 EmpID 的 6 个值),因此我必须将这些节点值分配给我的数据表的前六列。数据表中的其余列应为空。我怎样才能循环通过?

注意:表结构固定为只有 15 个员工详细信息,这听起来可能很傻,但这只是我的场景的一个示例,实际上与员工详细信息无关。如果 XML 中有超过 15 个节点,我将不得不忽略它。

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>

数据表:

        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 回答