假设我有两个DataTable - DT_A和DT_B
DT_A有3列 - 身份证,姓名和电话 DT_A的记录很少,如(1,'Sherry','01523652452'),......
现在我正在像这样将DT_A分配给DT_B
DT_B = DT_A
DT_B也将获得所有列格式和记录。我知道我可以在分配后清除记录,但我想知道是否还有其他更好的方法来获取没有记录的列格式。
答案 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