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

MrC*_*uer 23 c# datatable dataset

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

DataTable已经属于另一个DataSet.

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

sta*_*ica 65

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

DataTable.Copy

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

dataSetX.Tables.Add( dataTableFromDataSetY.Copy() );
Run Code Online (Sandbox Code Playgroud)

DataSet.Merge

你也可以使用DataSet.Merge这个:

dataSetX.Merge(dataTableFromDataSetY);
Run Code Online (Sandbox Code Playgroud)

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

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

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