将dataRow传输到新数据集

时间:2009-07-30 12:03:05

标签: c# dataset

我有一个从复杂的xml结构中读取的数据集....

这是它的基本版本,为了问题

<cars>
    <car>
       <carName>Golf</carName>
       <engine>
          <model></model>
       </engine>
    <//car>
    <car>
       <carName>Dodge</carName>
       <engine>
          <model></model>
       </engine>
    <//car>
 </cars>

首先,我创建数据集以获取整个文档....(我从文件中读取)

 DataSet dsCars = new DataSet();
 dsConfiguration.ReadXml("allcars.xml"));

接下来我想循环遍历所有的汽车行...为此我使用以下代码:

 foreach(DataRow carDataRow in dsCars.Tables["Car"].Rows)

现在在这个循环中,我想将汽车行(及其所有子内容)注入新数据集

所以在foreach循环中我有代码

  1. 创建新数据集
  2. 创建新的datatable = CarList2
  3. 使用以下命令导入行:tempTaskTable2.ImportRow(carDataRow);
  4. 但是当我使用:tempTaskDS.WriteXml(@“c:\ test.xml”)序列化到文件时;

    新创建的datatable = Carlist2为空白,根本不包含任何数据......

    我做错了什么?

2 个答案:

答案 0 :(得分:2)

我不确定你要做什么,但你可以在循环中试试这个:

DataSet tempTaskDS = new DataSet("tempCars");
tempTaskDS.Tables.Add("Cars");
tempTaskDS.Tables[0].Rows.Add(carDataRow);

答案 1 :(得分:1)

首先确保您的目标DataSet / DataTable与关于列数,列类型等的源DataSet / DataTable相同,然后使用

targetDataSet.Tables["CarList2"].ImportRow(sourceRow)