【问题标题】: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

标签: c# web-services dataset datalist


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多