如果我有2个DataTables(dtOne和dtTwo),我想合并它们并将它们放在另一个DataTable(dtAll)中.我怎么能在C#中做到这一点?我在数据表上尝试了Merge语句,但是返回void.合并是否保留数据?例如,如果我这样做:
dtOne.Merge(dtTwo);
dtOne是否会更改或更改dtTwo更改,如果其中任何一个更改,更改是否保留?
我知道我不能这样做,因为Merge返回void,但我希望能够在dtAll中存储dtOne和dtTwo的合并:
//Will Not work, How do I do this dtAll = dtOne.Merge(dtTwo);
Jeromy Irvin.. 93
该Merge
方法获取第二个表中的值并将它们与第一个表合并,因此第一个表现在将保存两个值.
如果要保留两个原始表,可以先复制原始表,然后合并:
dtAll = dtOne.Copy(); dtAll.Merge(dtTwo);
SNag.. 35
(很晚,但可能会帮助某人绊倒这个问题.)
而不是dtAll = dtOne.Copy();
在Jeromy Irvine的答案中你可以这样做:
dtAll = new DataTable(); ... dtAll.Merge(dtOne); dtAll.Merge(dtTwo); dtAll.Merge(dtThree); ...
等等.
在您想要迭代合并数据表的循环中,此技术非常有用:
DataTable dtAllCountries = new DataTable(); foreach(String strCountry in listCountries) { DataTable dtCountry = getData(strCountry); //Some function that returns a data table dtAllCountries.Merge(dtCountry); }
小智.. 12
dtAll = dtOne.Copy(); dtAll.Merge(dtTwo,true);
参数TRUE保留更改.
有关更多详细信息,请参阅MSDN.
该Merge
方法获取第二个表中的值并将它们与第一个表合并,因此第一个表现在将保存两个值.
如果要保留两个原始表,可以先复制原始表,然后合并:
dtAll = dtOne.Copy(); dtAll.Merge(dtTwo);
(很晚,但可能会帮助某人绊倒这个问题.)
而不是dtAll = dtOne.Copy();
在Jeromy Irvine的答案中你可以这样做:
dtAll = new DataTable(); ... dtAll.Merge(dtOne); dtAll.Merge(dtTwo); dtAll.Merge(dtThree); ...
等等.
在您想要迭代合并数据表的循环中,此技术非常有用:
DataTable dtAllCountries = new DataTable(); foreach(String strCountry in listCountries) { DataTable dtCountry = getData(strCountry); //Some function that returns a data table dtAllCountries.Merge(dtCountry); }
dtAll = dtOne.Copy(); dtAll.Merge(dtTwo,true);
参数TRUE保留更改.
有关更多详细信息,请参阅MSDN.