2016-11-24 80 views
0

我想要做的就是返回多个reader.cast <>以便我可以使用2个sqlcommands。return multiple reader.cast <>

var first =reader.Cast<IDataRecord>().Select(x => new LocationInfo() 

         { 
          Names = x.GetString(0), 
          Values = Math.Round(x.GetDouble(1), 2).ToString("#,##0.00"), 
          ValuesDouble = x.GetDouble(1) 

         }).ToList(); 
        reader.NextResult(); 

var second=reader.Cast<IDataRecord>().Select(x => new LocationInfo() 

        { 
         Names2 = x.GetString(0), 
          Values2 = Math.Round(x.GetDouble(1), 2).ToString("#,##0.00"), 
          ValuesDouble2 = x.GetDouble(1) 

        }).ToList(); 

所有我想要做的就是回归VAR第一和第二变种。请帮助:(

我使用这个Location.cs的参数:

namespace MVCRealtime 
{ 
public class LocationInfo 
{ 
    public string Names { get; set; } 
    public string Values { get; set; } 
    public double ValuesDouble { get; set; } 
    public string Names2 { get; set; } 
    public string Values2 { get; set; } 
    public double ValuesDouble2 { get; set; } 


} 

}

+0

'out'参数怎么样? – Pikoh

+0

它当前公开的IEnumerable GetData()。应该是什么? – MVCNoob

回答

0
public static class ReaderHelper 
{ 
    public static IEnumerable<TElem> GetData<TElem>(this IDataReader reader, Func<IDataRecord, TElem> buildObjectDelegat) 
    { 
     while (reader.Read()) 
     { 
      yield return buildObjectDelegat(reader); 
     } 
    } 
} 
// ... 
var result = reader.GetData(x => new LocationInfo() 
     { 
      Names = x.GetString(0), 
      Values = Math.Round(x.GetDouble(1), 2).ToString("#,##0.00"), 
      ValuesDouble = x.GetDouble(1) 
     }).Take(2); 

所以,你得到的结果的第1个要素,并在第二届第二VAR 1变种

+0

但不是只有1个结果?我不理解请求详细说明。谢谢 – MVCNoob

+0

'result'包含2个LocationInfo元素的集合,从'reader'的前2个记录中获得 –

相关问题