我的存储库中有一个方法需要提供整数值列表,但我只得到第一列值..如何在服务中获取所有列值..
这是我在存储库中的方法:
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数据。
答案 0 :(得分: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列表而不是List列表。
答案 1 :(得分:0)
根据你的方法的定义,你只能获得一个整数列表。
public List<int> GetChartInfo(
您可以创建一个与您需要的值匹配的自定义类,并返回这些对象的列表,其中每个对象代表查询的一行结果。
另一件事,你可以做的是将查询变成一个列表。
var x = MitecsRepository.Fetch<int>(query).ToList();
然后
return x;
并将方法的定义更改为以下
public object GetChartInfo(
所以你把它装箱了。
如果您只想要一列
,也可以这样做return x.Select(p=>p.Item1)
你可以做很多事情但是我仍然会告诉你考虑使用EF。使这样的东西更容易解决。