将行从 DataTableA 移动到 DataTableB 并更新到 Datarow

Move rows from DataTableA to DataTableB with update to Datarow

我的应用程序有两个列表视图 L1 和 L2,分别由数据表 D1 和 D2 界定。每个数据表都有 5 列,顺序和名称与 Column1 上的主键相同。我希望能够通过与应用程序上的 L1 和 L2 进行行单击交互来编辑有界数据表;具体来说,如果用户单击 L1 上的一行(fullrowselect = True):

  1. 从 L1 获取数据行 R1
  2. 将 R1 的 PromaryKey 值编辑为等于 1 + Max(L2.col1) 以确保唯一性 - 产生 R1X
  3. 从L1中删除原来的R1
  4. 将 R1X 添加到 L2
  5. 刷新两个列表视图以反映更改

我正在使用 D2.Add(R1)。这与使用 D2.Rows.Add(R1X.ItemArray) 有什么关系吗?

我收到的错误是 "This Row already belongs to another table"。我确保在将 R1X 插入 D2 之前先尝试从 D1 中删除 R1。

更新:

使用 ImportRow 工作得很好,并且利用数据库来设计主键,这样就不会出现重复,那么下面的代码就可以工作了:

Dim HostRow As DataRow = D2.Rows.Find(SomeId)
        'Insert the dr into both target Tables
        D1.ImportRow(D2.Rows.Find(SomeId))
        'Delete the reference record from the host table
        D2.Rows.Remove(HostRow)

谢谢大家