【问题标题】:can I add the same DataTable with same name to a DataSet multiple times?我可以多次将同名的同一个 DataTable 添加到 DataSet 中吗?
【发布时间】:2020-04-29 07:57:15
【问题描述】:

我在列表中有 12 个数据表,例如 "A,B,C,D,A,B,C,D,A,B,C,D" 我想将这些数据表添加到数据集,然后写入 Xml,但它显示异常:'A DataTable named 'A' already属于这个 DataSet

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

需要帮助如何实现这一目标。

【问题讨论】:

  • 一个数据集中不能有多个同名表。这就是您收到此错误的原因。您应该在列表中使用唯一的表名称,或者将具有相同名称的表组合起来,然后将它们添加到数据集
  • ChetanRanpariya - 如何合并同名表?
  • 同名表是否具有相同的架构?
  • 查看DataTable.Merge 以将相同的架构合并为一个DataTable

标签: c# vb.net datatable ado.net dataset


【解决方案1】:

将表名添加到数据表将解决该问题。为了您的理解,我创建了一个经过测试的小代码 sn-p..

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

【讨论】:

    猜你喜欢
    • 2010-11-22
    • 2010-12-08
    • 1970-01-01
    • 1970-01-01
    • 2013-06-14
    • 1970-01-01
    • 2022-10-06
    • 2012-06-18
    • 2014-06-28
    相关资源
    最近更新 更多