上次写代码时,要把一个表中的row插入到另一个表中时,用一下代码,出现了“该行已属于另一个表”的错误:
Dim table2 As New DataTable
table2 = table1.Clone
For Each row As DataRow In table1.Rows
table2.NewRow()
table2.Rows.Add(row)
Next
2个相同结构的表,不能用这种方法copy一个row到另一个表中。
不过我们可以用一下方法:
Dim table2 As New DataTable
table2 = table1.Clone
For Each row As DataRow In table1.Rows
table2.ImportRow(row)
Next
msdn上有如下备注:
调用 NewRow 时将使用现有的表架构向表中添加一行,并为该行填充默认值,同时将 DataRowState 设置为 Added。调用 ImportRow 将保留现有的 DataRowState 以及该行中的其他值。