2017-12-21 33 views
3

중첩 된 테이블과 XML로. 이 질문에서 참조하는 두 개의 테이블이 있습니다 : DataConfigDataTable, SpecEquationDataTable.쓰기 데이터 세트 내 코드에 dsetDataManager라는 데이터 집합 클래스가 존재한다

DataConfig은 부모 테이블과 SpecEquation 자식 테이블입니다.

Dim dset As New dsetDataManager 
    Dim dataconfig As New dsetDataManager.DataConfigDataTable 
    dataconfig.AddDataConfigRow(name, 
         name, 
         precision, 
         "smartmethodname", 
         "stringevalstring", 
         True, 
         "passingstring", 
         "passingstringinclusion", 
         "0", 
         "datacolumntype", 
         True, 
         True, 
         "networkanalyzertraces", 
         "spectrumanalyzertraces", 
         "noisefiguretraces", 
         0.5, 
         "parser") 
    dset.Tables.Add(dataconfig) 

    Dim specequation As New dsetDataManager.SpecEquationDataTable 
    specequation.AddSpecEquationRow(dataconfig.Rows(0), 
             j + 1, 
             k + 1, 
             arr_minEquation(equationCounter), 
             arr_maxEquation(equationCounter), 
             "Inclusive", 
             "Inclusive") 
    dset.WriteXML("example\path\test.xml") 

이러한 방법과 테이블은 모두 사용자 정의 그래서 그냥이 코드가 작동을 부담하시기 바랍니다 올바르게 생성됩니다

여기에 기존 코드입니다. 그들이 가장 확실한 것처럼. 내 문제 :

내가 두 sperate 테이블, 시작 태그와 dataconfig 테이블, 다음 행, 다음 종료 태그를 제공하고있는 XML을 쓰기

. 그런 다음 시작 태그, 행 및 종료 태그가있는 specequation 테이블이 있습니다. 내가 정말 원하는 것은

는 XML에서 중첩 된 테이블입니다. specequation 테이블을 dataconfig 테이블의 끝 태그 안에 넣기를 원합니다. 내가 어떻게이 일을 할 수 있는지에 대한 조언? .merge() 메서드가 작동 할 것이라고 생각했지만 '개체 참조가 개체의 인스턴스로 설정되지 않았습니다.'예외가 발생했습니다.

기존 XML :

enter image description here

는 내가 원하는 : enter image description here

가 다시 반복 할 수는 부모/자식 관계는 이미 이러한 테이블 사이에 존재합니다. 내 프로그램의 목적은 이러한 테이블을 나타내는 데이터가 들어있는 유용한 XML 파일을 자동으로 생성하는 것입니다. 이 중첩이 발생하는 것은 절대적으로 중요합니다. 고맙습니다!

답변

3

당신은하여 DataRelation을 사용하여 두 테이블 간의 관계를 추가 할 수 있습니다. 이 두

당신은 True를 중첩 =로하여 DataRelation을 설정할 수 있습니다 링크 필드를 추가 할 필요합니다.

datatable.Columns("Link").ColumnMapping = MappingType.Hidden 
예를 들어

Dim rel As DataRelation = dSet.Relations.Add("relHeader", dSet.Tables("DataConfig").Columns("Link"), dSet.Tables("SpecEquation").Columns("Link")) 
rel.Nested = True 

마지막으로 열을 숨기