я могу добавить один и тот же DataTable с тем же именем в DataSet несколько раз? - PullRequest
1 голос
/ 12 января 2020

у меня в списке 12 таблиц данных Как "A, B, C, D, A, B, C, D, A, B, C, D" Я хочу добавить эти наборы данных в набор данных и затем напишите в Xml, но это показывает исключение: 'DataTable с именем' A 'уже принадлежит этому DataSet

    For Each dataTable In dtList
        dsxml.Tables.Add(dataTable.Copy())
    Next
    dsxml.WriteXml(path)

нужна помощь, как этого добиться.

1 Ответ

0 голосов
/ 12 января 2020

Добавление имени таблицы в таблицы данных решит проблему. Для вашего понимания я создал небольшой проверенный фрагмент кода ..

''Sample class to hold datatables and their names
    Class cls_dtlist
        Public Property TableName As String
        Public Property Tabledata As DataTable
    End Class

    Sub Main()

        ''Dummy Tables
        Dim A As DataTable = New DataTable()
        Dim B As DataTable = New DataTable()
        Dim C As DataTable = New DataTable()
        Dim D As DataTable = New DataTable()
        Dim E As DataTable = New DataTable()
        Dim F As DataTable = New DataTable()


        Dim pathofXml As String = "your path"


        Dim dtlist As List(Of cls_dtlist) = New List(Of cls_dtlist)

        ''Adding datatables to class and then list
        dtlist.Add(New cls_dtlist With {.TableName = "A", .Tabledata = A})
        dtlist.Add(New cls_dtlist With {.TableName = "B", .Tabledata = B})
        dtlist.Add(New cls_dtlist With {.TableName = "C", .Tabledata = C})
        dtlist.Add(New cls_dtlist With {.TableName = "D", .Tabledata = D})
        dtlist.Add(New cls_dtlist With {.TableName = "E", .Tabledata = E})
        dtlist.Add(New cls_dtlist With {.TableName = "F", .Tabledata = F})


        Dim dsxml As DataSet = New DataSet()

        For Each dataTable In dtlist

            dataTable.TableName = dataTable.TableName

            dsxml.Tables.Add(dataTable.Tabledata.Copy())
        Next

        dsxml.WriteXml(pathofXml )

    End Sub
...