2011-05-09 4 views
1

데이터베이스에서 레코드를 읽고 XML 파일로 내 보낸 응용 프로그램이 있습니다. xml 파일의 스키마를 추출하는 xsd가 있습니다. xsd 프록시 클래스를 사용하여 데이터를 xml 파일로 직렬화합니다.XML Serializer가 행 건너 뛰기

이것은 내가 XML로 데이터를 직렬화하고 방법입니다

XmlSerializer serializer = new XmlSerializer(_report.GetType()); 
StringBuilder xmlString = new StringBuilder(); 
StringWriter writer = new StringWriter(xmlString); 
serializer.Serialize(writer, _report); 
XmlDocument doc = new XmlDocument(); 
doc.LoadXml(xmlString.ToString()); 
doc.Save(_outputFile.FullName); 

오전 데 문제는 출력 파일에 누락 된 행이 있다는 것입니다. 난 디버그를 통해 가서 데이터가 데이터베이스에서 프록시 개체의 컬렉션에 추가되고 '_report'개체를 통해 serializer에 전달되는 것을 알게되었습니다.

그래서 데이터 나 앱의 문제를 해결하기 위해 누락 된 몇 가지 레코드를 CSV 파일에 코딩하고 데이터를 내 앱으로 가져 왔습니다. 그 레코드는 이제 xml 파일에 나타납니다. 이제는 이것이 데이터 문제라는 것을 알고 있습니다. 응용 프로그램은 백엔드로 informix 데이터베이스를 사용하고 있습니다.

내가 이해하지 못하는 것은 informix 데이터베이스의 같은 테이블에있는 일부 행이 존재하는지 아닌지입니다. 나는 성공을 거두지 않고 인터넷에서이 주변을 둘러 보는데 거의 2-3 일을 보냈다. 그래서 나는 그것을 한 단계 높일 시간을 생각했습니다.

+0

xsd를 우리와 공유 할 수 있습니까? 나는 문제가있는 곳을 추측하고있다. 또한, 어떻게 "프록시 객체"_report를 생성 했습니까? XSD.EXE 또는 다른 방법을 사용 했습니까? 실제로 xsd가 데이터 세트입니까? – code4life

답변

0

2 일 전에 비슷한 문제가있었습니다.

시도는 my problem를 해결 솔루션이었다

xmlString.ToString()); 

를 호출하기 전에

writer.Flush(); 

를 추가.

+0

포인터 주셔서 감사. 필자는 'writer.Flush()'를 아무런 성공없이 5 행과 6 행 사이에 삽입했습니다. – Skadoosh