2017-12-21 12 views
3

In meinem Code existiert eine Datensatzklasse namens dsetDataManager. Es gibt zwei Tabellen, auf die ich in dieser Frage verweise: DataConfigDataTable, SpecEquationDataTable.Datensatz in XML mit verschachtelten Tabellen schreiben

DataConfig ist die übergeordnete Tabelle und SpecEquation ist die untergeordnete Tabelle.

Hier ist mein vorhandener Code:

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

Diese Methoden und Tabellen sind alle benutzerdefinierten so bitte NIMM nur Dieser Code funktioniert und korrekt erstellt. So wie sie es sind. Mein Problem:

Wenn ich das XML schreibe, werden mir zwei separate Tabellen zur Verfügung gestellt, eine dataconfig-Tabelle mit einem Start-Tag, dann die Zeilen, dann ein End-Tag. Dann gibt es die specequation-Tabelle mit einem Start-Tag, den Zeilen und dann einem End-Tag.

Was ich wirklich will, ist eine geschachtelte Tabelle in der XML. Ich möchte, dass die Speccequation-Tabelle innerhalb des End-Tags der Dataconfig-Tabelle liegt. Irgendwelche Tipps, wie ich das machen kann? Ich dachte, dass die .merge() Methode funktionieren würde, aber ich bekomme eine 'Objektreferenz wird nicht auf Instanz eines Objekts gesetzt' Ausnahme.

vorhandene XML:

enter image description here

WAS ICH WILL: enter image description here

wieder zu wiederholen, die Eltern/Kind-Beziehung existiert bereits zwischen diesen Tabellen. Der Zweck meines Programms besteht darin, nützliche XML-Dateien automatisch zu generieren, die Daten enthalten, die diese Tabellen darstellen. Es ist absolut entscheidend, dass diese Verschachtelung stattfindet. Vielen Dank!

Antwort

3

Sie können eine Beziehung zwischen den beiden Tabellen mithilfe einer DataRelation hinzufügen. Dies erfordert das Hinzufügen eines Felds zum Verknüpfen der beiden

Sie können dann die DataRelation auf Nested = True festlegen. Zum Beispiel

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

verstecken schließlich die Spalten:

datatable.Columns("Link").ColumnMapping = MappingType.Hidden 
Verwandte Themen