将数据集的两个结果合并为一个
Posted
技术标签:
【中文标题】将数据集的两个结果合并为一个【英文标题】:Combining two results of datasets into one 【发布时间】:2012-12-16 13:41:20 【问题描述】:我创建了一个 web 服务,它返回两个数据集(返回类型)作为结果。
是否可以将两个数据集结果合并为一个,以便我可以将其显示在一个数据列表上?我尝试使用arraylist
,但它在datalist
中没有返回任何内容。
GetDepartureFlightsDetails()
和 getDepartureFlights()
都返回数据集值。
以下是我用来检索网络服务结果的方法。
public ArrayList GetDepartureFlightsDetails(String departurecountry, String arrivalcountry, DateTime departuredate)
DLSA datalayerTS = new DLSA();
DLJS datalayerJW = new DLJS();
ArrayList array = new ArrayList();
array.Add(datalayerSA.GetDepartureFlightsDetails(departurecountry, arrivalcountry, departuredate));
array.Add(datalayerJW.getDepartureFlights(departurecountry, arrivalcountry, departuredate));
return array;
【问题讨论】:
FredHomme 将您的数组声明更改为类似这样的 ArrayList arList = new ArrayList();应该会让你的返回数组变得更容易和更具可读性,不会被混淆为 Array 与返回类型为 ArrayList 类型只是一个建议 好的。抱歉命名错误。 只是一个建议 FredHomme 【参考方案1】:您可以使用DataSet.Merge 方法:
firstDataSet.Merge(secondDataSet);
更新:
public DataSet GetDepartureFlightsDetails(String departurecountry, String arrivalcountry, DateTime departuredate)
DLSA datalayerTS = new DLSA();
DLJS datalayerJW = new DLJS();
var firstDataSet = datalayerSA.GetDepartureFlightsDetails(departurecountry, arrivalcountry, departuredate));
var secondDataSet = datalayerJW.getDepartureFlights(departurecountry, arrivalcountry, departuredate));
firstDataSet.Merge(secondDataSet);
return firstDataSet;
【讨论】:
合并时注意新数据表中的重复行。 如何将数据集结果添加到数据集中?数据集优先 = 新数据集();然后呢? 问题说“GetDepartureFlightsDetails() 和 getDepartureFlights() 都返回数据集值”,我认为这意味着它们返回 DataSets。事实并非如此?这些方法的确切返回类型是什么? 它们的返回类型是DataSet。所以我把 return GetDepartureFlightsDetails().Merge(getDepartureFlights()) ?但它返回错误“(无法隐式转换类型'System.Data.DataSet'”)”【参考方案2】:你不能做一个包装类并使用包装类的List<>
,
而不是Datasets
。
【讨论】:
以上是关于将数据集的两个结果合并为一个的主要内容,如果未能解决你的问题,请参考以下文章