【发布时间】:2018-08-20 07:06:16
【问题描述】:
如何将 DataTable 对象从一个数据集移动到另一个数据集并避免在内存中重复数据?像这样的东西:
var ds1 = new DataSet();
var ds2 = new DataSet();
IDataAdapter da = myDataAdapterFactory.New();
da.Fill(ds1);
Console.WriteLine(ds1.Tables.Count);//1
Console.WriteLine(ds2.Tables.Count);//0
ds1.MoveDataTableTo(ds2, ds1.Tables[0]);
Console.WriteLine(ds1.Tables.Count);//0
Console.WriteLine(ds2.Tables.Count);//1
我无法消耗内存,这也是我不使用DataTable.Copy()或DataSet.Merge()或其他方式复制内存行的原因。
【问题讨论】:
-
你尝试了什么? documentation says
Add、Remove和CopyTo在DataTableCollection的方法中。 -
@jeroenh 我不需要 copy ,我需要 move
-
true,对副本的接受答案也没有解决问题的“避免在内存中复制数据”部分。
-
你试过
dt = ds1.Tables[0]; ds1.Remove(dt); ds2.Add(dt);吗? -
@jeroenh,它奏效了。请问可以发一下答案吗?目前,我看到它很简单,但我花了很多时间寻找解决方案。