dataSet.writeXml не записывает пустой тег, если поле было пустым C # - PullRequest
3 голосов
/ 26 мая 2010

Я хочу создать XML моего DataSet с помощью функции .writeXml. Если запись в моем DataSet была нулевой, я хотел бы иметь пустой тег вместо отсутствующего тега:

пример того, как должно выглядеть, если у Джона нет возраста:

  <MyDataSet>
    <ID>8613458</ID>
    <AW_ID>37534778</AW_ID>
    <NAME>Peter</NAME>
    <AGE>22</AGE>
  </MyDataSet>
  <MyDataSet>
    <ID>8613459</ID>
    <AW_ID>37534779</AW_ID>
    <NAME>John</NAME>
    <AGE></AGE>
  </MyDataSet>

пример того, как это выглядит сейчас:

  <MyDataSet>
    <ID>8613458</ID>
    <AW_ID>37534778</AW_ID>
    <NAME>Peter</NAME>
    <AGE>22</AGE>
  </MyDataSet>
  <MyDataSet>
    <ID>8613459</ID>
    <AW_ID>37534779</AW_ID>
    <NAME>John</NAME>
  </MyDataSet>

Ты знаешь, что мне нужно делать? Спасибо за вашу помощь !!

Ответы [ 2 ]

1 голос
/ 26 мая 2010

Я не думаю, что вы можете изменить так, чтобы он записывал пустые значения, если они равны NULL, поскольку NULL отличается от пустого.
Однако, если тип данных age - это строка, просто просмотрите набор данных и измените все NULL на пустые строки перед записью его в XML, и вы получите желаемый эффект.

0 голосов
/ 13 февраля 2013

Вы можете использовать WriteXmlSchema (и ReadXmlSchema) для хранения схемы для таблицы. Это будет означать, что хотя столбцы NULL не включены в XML, они все равно правильно импортируются.

using (SqlCommand sqlCommand = new SqlCommand(QUERY, CONNECTION))
{
    SqlDataAdapter dataAdapter = new SqlDataAdapter(sqlCommand);
    DataSet dataSet = new DataSet();
    dataAdapter.Fill(dataSet);
    dataSet.WriteXmlSchema(@"C:\TEMP\Schema.xsd");
    dataSet.Tables[0].WriteXml(@"C:\TEMP\Output.xml");
}

Здесь есть действительно полезная статья: Сохранить набор данных в XML с нулевыми значениями

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...