将数据集的两个结果合并为一个

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

【讨论】:

以上是关于将数据集的两个结果合并为一个的主要内容,如果未能解决你的问题,请参考以下文章

021. asp.net两个DataSet数据集的合并

当数据集的列具有不同的行数时合并它们

解决UNION ALL合并两个结果集后排序的问题

在 Pandas 中加入两个大型数据集的最佳方法

在union的时候怎么强制指定数据类型

Python实现Imagenet数据集的合并和拆分