2010-05-26 2 views
3

.writeXml-function을 사용하여 DataSet의 XML을 만들고 싶습니다. 내 데이터 집합의 항목이 null의 경우 , 내가 대신 누락 된 태그의 빈 태그를 가지고 싶다 :dataSet.writeXml은 필드가 비어있는 경우 빈 태그를 쓰지 않습니다. C#

예는 요한은 연령이 없다면 같이 방법 :

<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> 

내가해야 할 일을 알고 있습니까? 도움 주셔서 감사합니다.

답변

1

NULL을 공백과 다르기 때문에 공백 값을 쓸 수 있도록 변경할 수 있다고 생각하지 않습니다.
그러나 age의 데이터 유형이 문자열 인 경우 XML에 데이터를 기록하기 전에 데이터 세트를 거쳐 NULL을 빈 문자열로 변경하면 원하는 효과를 얻을 수 있습니다.

+2

감사 :

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

여기에 정말 유용한 기사가있다. 내가 끈이 없기 때문에 내 경우에는 작동하지 않았다. 그러나 내 문제에 대한 또 다른 해결책을 찾았습니다. .WriteXml (sting fileName) 대신 .WriteXml (string fileName, XmlWriteMode WriteSchema 문자열) ->이 결과는 DBNull이 "0"으로 바뀌 었습니다. 누락 된 태그 – Christoph

+0

@ 크리스토프,이 솔루션은 나를 진정한 두통을 저장 주셔서 감사합니다 :) – QFDev

0

WriteXmlSchema (및 ReadXmlSchema)를 사용하여 테이블의 스키마를 저장할 수 있습니다. 이것은 NULL 열이 XML에 포함되어 있지 않더라도 올바르게 가져올 수 있음을 의미합니다. Save Dataset to XML With Null Values

관련 문제