vb.net - 将行从 DataTableA 移动到 DataTableB 并更新到 Datarow
问题描述
我的应用程序有两个列表视图 L1 和 L2,分别由数据表 D1 和 D2 界定。每个 Datatable 有 5 列,顺序和名称相同,在 Column1 上有一个 primaryKey。我希望能够通过与应用程序上的 L1 和 L2 的行单击交互来编辑有界数据表;具体来说,如果用户单击 L1 上的一行(fullrowselect = True):
- 从 L1 获取 DataRow R1
- 编辑 R1 的 PromaryKey 值等于 1 + Max(L2.col1) 以确保唯一性 - 产生 R1X
- 从L1中删除原来的R1
- 将 R1X 添加到 L2
- 刷新两个列表视图以反映更改
我正在使用 D2.Add(R1)。这与使用 D2.Rows.Add(R1X.ItemArray) 有什么关系吗?
我收到的错误是“此行已经属于另一个表”。我确保在将 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)
谢谢大家。
推荐阅读
- javascript - 如何自动将光标设置为输入标签
- xcode - 如何使用 APPium 将 xcode 设置为自动化应用程序
- python - 从目录中每个txt文件的行的第一列减去一个常数
- python - 如何将一组列与另一组列连接,以使结果列包含 n*m 列的数组
- homebrew - 自制软件从 SSO 后面的私有 github 下载包
- python - 使用正则表达式的 Python 的 Mad Libs ATBS
- python - 如何从使用“通过”创建的 M2M 过渡到由 Django 管理的 M2M
- jenkins - 我无法使用 jenkins 配置设置将 artifactory 集成到 jenkins
- python - 在 cmd windows 中从 php 运行 python 脚本
- kotlin - 如何在 Compose 中保留列控件的展开项?