2016-11-24 61 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個記錄中獲得 –

相關問題