如果字段为空,dataSet.writeXml不会写空标记C#

时间:2010-05-26 12:04:45

标签: xml dataset

我想使用.writeXml函数创建我的DataSet的XML。 如果我的DataSet中的条目为null,我希望有一个空标记而不是缺少标记:

示例如果约翰没有年龄,它应该是什么样子:

  <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 个答案:

答案 0 :(得分:1)

我不认为你可以改变它,如果它们是NULL,它会写空值,因为NULL与空不同 但是,如果age的数据类型是一个字符串,只需浏览数据集并将任何NULL更改为空字符串,然后再将其写入XML并获得所需的效果。

答案 1 :(得分:0)

您可以使用WriteXmlSchema(和ReadXmlSchema)来存储表的架构。这意味着虽然XML列中不包含NULL列,但它们仍然可以正确导入。

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

这里有一篇非常有用的文章:Save Dataset to XML With Null Values