将 DataTable 从一个 DataSet 复制到另一个

Copy DataTable from one DataSet to another(将 DataTable 从一个 DataSet 复制到另一个)
本文介绍了将 DataTable 从一个 DataSet 复制到另一个的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试向新数据集 X 添加一个位于不同数据集 Y 内的数据表.如果我直接添加它,我会收到以下错误:

I'm trying to add to a new DataSet X a DataTable that is inside of a different DataSet Y. If I add it directly, I get the following error:

DataTable 已经属于另一个 DataSet.

我是否必须克隆 DataTable 并将所有行导入到其中,然后将新的 DataTable 添加到新的 DataSet 中?有更好/更简单的方法吗?

Do I have to clone the DataTable and import all the rows to it and then add the new DataTable to the new DataSet? Is there a better/easy way to do it?

推荐答案

有两种简单的方法可以做到这一点:

There are two easy ways to do this:

而不是 DataTable.Clone,使用 DataTable.Copy 创建数据表的副本;然后将副本插入到目标 DataSet:

Instead of DataTable.Clone, use DataTable.Copy to create a copy of your data table; then insert the copy into the target DataSet:

dataSetX.Tables.Add( dataTableFromDataSetY.Copy() );

DataSet.Merge

您也可以使用 DataSet.Merge 为此:

dataSetX.Merge(dataTableFromDataSetY);

但请注意,如果您要使用此方法,您可能需要确保您的目标 DataSet 尚未包含同名的表:

Note, however, that if you are going to use this method, you might want to make sure that your target DataSet doesn't already contain a table with the same name:

  • 如果目标数据集不包含同名表,则在数据集中创建表的新副本;

  • If the target DataSet doesn't contain a table by the same name, a fresh copy of the table is created inside the data set;

如果同名表已经在目标数据集中,那么它将与传递给 Merge 的表合并,最终得到两者的混合.

If a table by the same name is already in the target data set, then it will get merged with the one passed to Merge, and you end up with a mix of the two.

这篇关于将 DataTable 从一个 DataSet 复制到另一个的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

DispatcherQueue null when trying to update Ui property in ViewModel(尝试更新ViewModel中的Ui属性时DispatcherQueue为空)
Drawing over all windows on multiple monitors(在多个监视器上绘制所有窗口)
Programmatically show the desktop(以编程方式显示桌面)
c# Generic Setlt;Tgt; implementation to access objects by type(按类型访问对象的C#泛型集实现)
InvalidOperationException When using Context Injection in ASP.Net Core(在ASP.NET核心中使用上下文注入时发生InvalidOperationException)
LINQ many-to-many relationship, how to write a correct WHERE clause?(LINQ多对多关系,如何写一个正确的WHERE子句?)