-5

我的存储库中有一个方法需要提供整数值列表,但我只获得第一列值..我怎样才能获得我的服务中的所有列值..

这是我在存储库中的方法:

public List<int> GetChartInfo(string lineNo, string shiftDateTime, string station)
{
        string query = string.Format("SELECT SUM(QTY_BUILD) AS BUILD_QTY, SUM(QTY_FAIL) AS FAIL_QTY, "+
                                     "DATEPART(HH,BUILD_HOUR) AS SHIFT_HOURS FROM {0} WITH (NOLOCK) "+
                                     "WHERE LINE_NO='{1}' AND BUILD_HOUR >='{2}' AND STATION='{3}' "+
                                     "GROUP BY DATEPART(HH,BUILD_HOUR) ORDER BY SHIFT_HOURS ",_tableName, lineNo, shiftDateTime, station);

        return MitecsRepository.Fetch<int>(query);
}

我在我的服务中调用了这个方法,如下所示:

var QtyBuildList = _qtyBuildRepository.GetChartInfo(cellName, _currentShiftDateTime, tableName); 

QtyBuildList 仅获取 build_qty 数据.. 我怎样才能获取 fail_qty 和 shift_hours 数据。

4

2 回答 2

0

你为什么不创建一个类并返回这个类的列表。例如

public class BuildData
{
    public int BuildQty {get;set;}
    public int FailQty {get;set;}
    public int ShiftHours {get;set;}
}

然后创建一个列表

List<BuildData> BuildDataList = new List<BuildData>();

然后,您可以循环您的数据,例如;

while (ResultSet.Read())
{

     BuildData data = new BuildData();
     data.BuildQty = Convert.ToInt64(ResultSet["BUILD_QTY"];
     data.FailQty = Convert.ToInt64(ResultSet["FAIL_QTY"];
     data.ShiftHours = Convert.ToInt64(ResultSet["SHIFT_HOURS "];
     BuildDataList.Add(data);  
}

return BuildDataList;

因此,您将返回一个 BuildData 列表,而不是只为您的一个列返回一个列表。

于 2013-08-20T08:21:38.080 回答
0

根据您的方法的定义,您应该只返回一个整数列表。

public List<int> GetChartInfo(

您可以创建一个与您需要的值匹配的自定义类,并返回这些对象的列表,其中每个对象代表查询的一行结果。

另一件事,你可以做的是将查询变成一个列表。

var x = MitecsRepository.Fetch<int>(query).ToList();

然后要么

return x;

并将方法的定义更改为以下

 public object GetChartInfo(

所以你把它装箱了。

或者如果你只想要一列,你可以做这样的事情

return x.Select(p=>p.Item1)

你可以做很多事情但我仍然会告诉你考虑使用 EF。让这样的事情更容易解决。

于 2013-08-20T08:25:19.673 回答