VB:将数据表分配给另一个DataTable而不导入记录。

时间:2014-12-03 02:05:28

标签: vb.net datatable

假设我有两个DataTable - DT_A和DT_B

DT_A有3列 - 身份证,姓名和电话 DT_A的记录很少,如(1,'Sherry','01523652452'),......

现在我正在像这样将DT_A分配给DT_B

DT_B = DT_A

DT_B也将获得所有列格式和记录。我知道我可以在分配后清除记录,但我想知道是否还有其他更好的方法来获取没有记录的列格式。

1 个答案:

答案 0 :(得分:1)

您应该能够将该行更改为:

DT_B = DT_A.Clone

http://msdn.microsoft.com/en-us/library/system.data.datatable.clone(v=vs.110).aspx


(一些代码要演示)

    Dim dtA As New DataTable
    Dim dtB As New DataTable

    dtA.Columns.Add(New DataColumn("Index"))
    dtA.Columns.Add(New DataColumn("Name"))
    dtA.Columns.Add(New DataColumn("Number"))

    Debug.WriteLine("DATATABLE A COLUMNS")
    Debug.WriteLine(dtA.Columns(0).ColumnName)
    Debug.WriteLine(dtA.Columns(1).ColumnName)
    Debug.WriteLine(dtA.Columns(2).ColumnName)

    dtA.Rows.Add({"1", "Sherry", "01523652452"})
    dtA.Rows.Add({"2", "Bob", "0937948573"})

    Debug.WriteLine("DATATABLE A RECORDS")
    For Each row As DataRow In dtA.Rows
        Debug.WriteLine(row(0) & " " & row(1) & " " & row(2))
    Next

    dtB = dtA.Clone

    Debug.WriteLine("DATATABLE B COLUMNS")
    Debug.WriteLine(dtB.Columns(0).ColumnName)
    Debug.WriteLine(dtB.Columns(1).ColumnName)
    Debug.WriteLine(dtB.Columns(2).ColumnName)

    Debug.WriteLine("DATATABLE B RECORDS")
    For Each row As DataRow In dtB.Rows
        Debug.WriteLine(row(0) & " " & row(1) & " " & row(2))
    Next

给我这个输出:

DATATABLE A COLUMNS 指数 名称 数 DATATABLE A RECORDS 1 Sherry 01523652452 2 Bob 0937948573 DATATABLE B COLUMNS 指数 名称 数 DATATABLE B RECORDS