2009-07-30 19 views
0

私は複雑なXML構造から読み込んだデータセットを持っている....ここ転送のDataRow

が質問

<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")); 

(と私は、ファイルからこれを読んで)....文書全体を取得するためのデータセットを作成します012

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

    今、このループでは、私は新しいデータセット

    に車の列(とそのすべてのサブコンテンツ)を注入したいので、foreachループで、私は、コードを持っている

  1. 作成新しいデータセット
  2. 新しいデータテーブルを作成する= CarList2
  3. 次のコードを使用して行をインポートします。tempTaskTable2.ImportRow(carDataRow);

私はファイルを使用してシリアル化するとき:tempTaskDS.WriteXml(@ "c:\ test.xml");

新しく作成されたDataTable = Carlist2は空白で、データをまったく含まれていません...

は私が間違って何をしているのですか?

+0

私はあなたが参照を追加していると思います。 clone()メソッドを使用しましたか? – adatapost

+0

いいえdataTableのインポート行機能を使用しました。 –

+0

各車に新しいデータセットが1つありますか? –

答えて

2

私はあなたがやろうとしているかわからないが、あなたはループでこれを試みることができる:

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

テーブルではありません。ちょうど列 –

1

まずあなたのターゲットデータセット/ DataTableのはとソースデータセット/ DataTableのと同じであることを確認してください列の数に応じてなどを使用してください

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