перенести dataRow в новый набор данных - PullRequest
0 голосов
/ 30 июля 2009

У меня есть набор данных, который я прочитал из сложной структуры 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. Создать новую таблицу данных = CarList2
  3. Импорт строки с использованием: tempTaskTable2.ImportRow (carDataRow);

Но когда я сериализуюсь в файл, используя: tempTaskDS.WriteXml (@ "c: \ test.xml");

Вновь созданный объект данных = Carlist2 пуст и не содержит данных вообще ...

Что я делаю не так?

Ответы [ 2 ]

2 голосов
/ 30 июля 2009

Я не уверен, что вы пытаетесь сделать, но вы можете попробовать это в цикле:

DataSet tempTaskDS = new DataSet("tempCars");
tempTaskDS.Tables.Add("Cars");
tempTaskDS.Tables[0].Rows.Add(carDataRow);
1 голос
/ 30 июля 2009

Сначала убедитесь, что ваш целевой DataSet / DataTable совпадает с исходным DataSet / DataTable в отношении количества столбцов, типов столбцов и т. Д., Затем используйте

targetDataSet.Tables["CarList2"].ImportRow(sourceRow)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...