如何使用一种方法返回多个表?

时间:2014-03-27 14:53:10

标签: c# xml web-services

我有一个类,哪些方法将用作Web服务(REST) - > XML输出。它用于从db获取一些数据,可用于从excel导入。

虽然我只需要返回一个表,但没有问题(方法看起来像这样):

public DataTable CountryKitUPH(string date, string fhour, string thour)
{
     date = Dates(date);

     var from = date + ' ' + fhour + ":00";
     var to = date + ' ' + thour + ":00";

     var sqlCommand = "exec rptPMCountryKitUPH_sp @trantype='REPORT', @fromdt='" + from + "', @todt='" + to + "'";

     var dataContext = DataContextFactory.GetShopFloorDataContext(Guid.Empty);
     var dt = Core.Data.Utility.QueryToDataTable(Guid.Empty, DataContextFactory.SecurityKey, sqlCommand);
     dt.TableName = "Country Kit UPH";
     return dt;
}

但是现在我必须做报告,它返回多个表 - 每个“line”参数的一组表。

该方法应该返回更多。我可以想象它看起来像XML,我只是不知道如何返回它(因为我还不能发布图像,我将尝试编写我认为XML应该是这样的:

<line name='L1'>
    <minitable>
        <row no="1">
            <column name="event 1">13</column>
            <column name="event 2">35</column>
            <column name="event 3">78</column>
        </row>
    </minitable>
    <table>
        (content)
    </table>
</line>
<line name='L2'>
    <minitable>
        (content)
    </minitable>
    <table>
        (content)
    </table>
</line>

那么请 - 我应该选择哪种数据类型来返回这样的多个表,或者如何将这些表包装在xml中?

非常感谢

1 个答案:

答案 0 :(得分:1)

有这样的东西吗?

public DataTable[] MultipleMethod(args)
{
    List<DataTable> list = new List<DataTable>();

    // Load first DataTable
    DataTable dt = ...
    list.Add(dt);  // Add the DataTable to the list of tables

    // Load second DataTable
    dt = ...
    list.Add(dt);  // Add the DataTable to the list of tables

    // Load another DataTable
    dt = ...
    list.Add(dt);  // Add the DataTable to the list of tables

    return list.ToArray();  // Return an array of tables (can return the list if that is the return type)
}